为什么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)" 

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

我不明白这是为什么。 公式工作正常,当手动input,即使它不是,它不应该打破代码,对不对?

我试图通过分手,将公式分配给一个variables,如果它的工作原理,如果另一个公式被替代(它),并重新sorting,试图解决它。 没什么帮助。

使用半冒号而不是冒号

 "=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)"