【发布时间】:2018-02-02 18:04:35
【问题描述】:
MyData.Columns("R").Address 是 $R$10:$R$121AddressCurr 是 $D$10:$D$121AddressPr 是 $O$10:$O$121MyData.Columns(5).Address 是 $E$10:$E$121
AddressPr = MyData.Columns("O").Address
AddressCurr = MyData.Columns("D").Address
MyData.Columns("R").FormulaArray _
= "=IF(" & AddressCurr & ">0;1;0)"
第三行抛出:
运行时错误 '1004' 无法设置范围类的公式数组属性
每当我在工作表上手动输入公式=IF($D$10:$D$121>0,1,0) 时,它都会按预期工作。
为什么在使用正确的数组公式填充范围时会不断弹出运行时错误?
注意:这个公式是一个更大的公式的一部分=ROUND($O$10:$O$121/IF($D$10:$D$121=0,1,$D$10:$D$121)*$E$10:$E$121,-1)
MyData.Columns("R").FormulaArray _
= "=" & AddressPr & "/" & _
"IF(" & AddressCurr & "=0,1," & AddressCurr & ")*" & _
"" & MyData.Columns(5).Address & ""
它也会引发错误。
相反,下面的公式就像一个魅力:
MyData.Columns("R").FormulaArray _
= "=" & AddressPr & "/" & _
"" & AddressCurr & "*" & _
"" & MyData.Columns(5).Address & ""
我的猜测是它不能形成一个布尔数组,但是跟随也不适用于ROUND。
【问题讨论】: