为什么VBA在粘贴某个公式时会出错,但在粘贴其他公式时却不会出错?

时间:2015-07-21 12:26:18

标签: excel vba excel-vba

我正在尝试在Excel / VBA中执行以下代码:

Worksheets("Portfolio").Range("D54") = "=COUNTA($F$6:$F$51)"
Worksheets("Portfolio").Range("D55") = "=COUNTA($E$6:$E$51)"
Worksheets("Portfolio").Range("M52") = "=SUM($M$6:$M$51)"
Worksheets("Portfolio").Range("L52") = "=SUMPRODUCT($I$6:$I$51;$L$6:$L$51)/SUM($I$6:$I$51)"

完成后,前三个按预期执行,但最后一个给出错误“应用程序定义或对象定义错误”

我不明白为什么会这样。手动输入时该公式运行正常,即使不是,也不应该破坏代码,对吗?

我试图通过拆分线来修复它,将公式分配给变量,测试是否可以替换另一个公式(它确实如此),然后重新排序。什么都没有帮助。

1 个答案:

答案 0 :(得分:1)

使用半结肠而不是结肠

"=SUMPRODUCT($I$6:$I$51;$L$6:$L$51)/SUM($I$6:$I$51)"

见下面的固定冒号

"=SUMPRODUCT($I$6:$I$51:$L$6:$L$51)/SUM($I$6:$I$51)"

经过进一步调查,下面是正确的公式

"=SUMPRODUCT(R6C9:R51C9,R6C12:R51C12)/SUM(R6C9:R51C9)"