在 VBA 中写入公式导致编译错误 - 双引号

Writing formula in VBA results in Compile Error - Double Quotes

我正在开发 Excel VBA 宏。

我必须在单元格内写一个公式。

我指的公式是CONTA.SE()。它的行为方式与 COUNTIF() 相同。我猜这是意大利语 Excel 的 COUNTIF() 版本。

更准确地说,我要实现的公式是:

=CONTA.SE(Report!E:E;"<20")

以便它适用于从 E2 到最后一个非空单元格的单元格值。

我想我遇到麻烦是因为双引号。

我尝试了很多解决方案,例如:

Cells(5, 2).Formula = "=CONTA.SE(Report!E2:E" & rowCount & ";" & Chr(34) & "<20" & Chr(34) & ")"

或:

Cells(5, 2).Formula = "=CONTA.SE(Report!E2:E" & rowCount & ";" & """<20""" & ")"

我得到的错误信息是:

run-time Error 1004:
Error defined by the Object or the Application.

谁能告诉我怎么写才正确?

.Formula 使用英文版的公式。如果您想使用本地化公式(例如意大利语),您必须使用 .FormulaLocal.

所以要么本地化:

Cells(5, 2).FormulaLocal = "=CONTA.SE(Report!E2:E" & rowCount & ";" & Chr(34) & "<20" & Chr(34) & ")"

或英语

Cells(5, 2).Formula = "=COUNTIF(Report!E2:E" & rowCount & "," & Chr(34) & "<20" & Chr(34) & ")"

请注意,本地化(意大利语)形式仅适用于意大利语 Excel,但英语版本适用于任何 Excel。所以建议使用VBA中的英文版本。在VBA中使用英文公式会自动将其转换为单元格中正确的本地化形式(用户不会注意到任何差异)。

另请注意,英文分隔符是 ,,而意大利语(和大多数欧洲)分隔符是 ;