我正在尝试在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)"
完成后,前三个按预期执行,但最后一个给出错误“应用程序定义或对象定义错误”
我不明白为什么会这样。手动输入时该公式运行正常,即使不是,也不应该破坏代码,对吗?
我试图通过拆分线来修复它,将公式分配给变量,测试是否可以替换另一个公式(它确实如此),然后重新排序。什么都没有帮助。
答案 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)"