繁体   English   中英

Range.ArrayFormula在特定情况下导致错误

[英]Range.ArrayFormula causing error in specific cases

我有一段代码将数组公式放在一个范围内。 它在扔

运行时错误:438“对象不支持此属性或方法”

但是当我在单元格中粘贴相同的公式并按Ctrl+Shift+Enter

一切正常。

strFormula = "=IF(SUM(--(A2=Data!$A$2:$A$1423)*--(B2=YEAR(Data!$B$2:$B$1423))*  --(C2=MONTH(Data!$B$2:$B$1423)) * (Data!$E$2:$E$1423))=0,TEXT(,),SUM(--(A2=Data!$A$2:$A$1423)*--(B2=YEAR(Data!$B$2:$B$1423))*  --(C2=MONTH(Data!$B$2:$B$1423)) * (Data!$E$2:$E$1423)))"

shtAbsoluteData.Range("D2").ArrayFormula  = strFormula

当插入IF条件时,会发生此问题。 因此, IF没有IF ,以下代码可以正常工作:

strFormula = "=SUM(--(A2=Data!$A$2:$A$1423)*--(B2=YEAR(Data!$B$2:$B$1423))*  --(C2=MONTH(Data!$B$2:$B$1423)) * (Data!$E$2:$E$1423))"

shtAbsoluteData.Range("D2").ArrayFormula = strFormula

注意:如果我使用shtAbsoluteData.Range("D2").Formula ,则没有错误,但结果不正确

您不能像通过您的情况那样直接通过vba输入长度超过255个字符的字符串。 在这种情况下,请使用Replace -trick。

该代码可能会显示为:

strFormula = "=IF(SUM(--(A2=Data!$A$2:$A$1423)*--(B2=YEAR(Data!$B$2:$B$1423))*  --(C2=MONTH(Data!$B$2:$B$1423)) * (Data!$E$2:$E$1423))=0, """" ,SUM(--(A2=Data!$A$2:$A$1423)*--(B2=YEAR(Data!$B$2:$B$1423))*  --(C2=MONTH(Data!$B$2:$B$1423)) * (Data!$E$2:$E$1423)))"

如果它是带有空参数的Text ,那应该会有所帮助。

PS。 注意双引号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM