VBA代码中的问题与Excel期望公式的格式有关,特别是在文本字符串使用引号和小数/千分隔符方面。以下是需要考虑的几点:
-
字符串的引号
:包含文本字符串的Excel公式应在文本周围使用双引号。在VBA中,需要使用两次双引号才能正确转义。
-
逗号与分号
:根据您的Excel区域设置,列表分隔符可以是逗号或分号。在许多地区,列表分隔符是逗号,而不是分号。
-
公式本地化
:如果Excel设置使用逗号作为小数分隔符,则可能需要使用分号来分隔函数的参数。否则,将使用逗号。
以下是如何更正代码:
对于英语区域设置(逗号作为列表分隔符)
Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6, ""False"", ""True"")"
对于欧洲区域设置(分号作为列表分隔符)
Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6; ""False""; ""True"")"
这里的关键是使用
""
(两次双引号)以正确转义字符串中的引号。
示例代码
Sub ApplyFormula()
' For English Locale
Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6, ""False"", ""True"")"
' For European Locale
' Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6; ""False""; ""True"")"
End Sub
通过使用正确的格式,应避免语法错误,并在指定的范围内成功应用公式。