在 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中使用英文公式会自动将其转换为单元格中正确的本地化形式(用户不会注意到任何差异)。
另请注意,英文分隔符是 ,
,而意大利语(和大多数欧洲)分隔符是 ;
。
我正在开发 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中使用英文公式会自动将其转换为单元格中正确的本地化形式(用户不会注意到任何差异)。
另请注意,英文分隔符是 ,
,而意大利语(和大多数欧洲)分隔符是 ;
。