[英]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.