我正在处理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""" & ")"
我收到的错误消息是:
运行时错误1004:
对象或应用程序定义的错误。
任何人都可以告诉我如何正确书写吗?
答案 0 :(得分:3)
.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中使用英语公式会自动将其转换为单元格中的正确本地化形式(用户不会注意到任何差异)。
还请注意,英文分隔符为,
,而意大利语(也是欧洲大多数)分隔符为;
。