如果我在 VBA 中这样做的话,有人可以帮助我为什么我会出错吗
Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6;"False";"True")"
已经尝试这样,但仍然给出错误
Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6,"False","True")"
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
通过使用正确的格式,您应该避免语法错误并在指定范围内成功应用公式。