VBA True False 条件

问题描述 投票:0回答:1

如果我在 VBA 中这样做的话,有人可以帮助我为什么我会出错吗

Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6;"False";"True")"

已经尝试这样,但仍然给出错误

Worksheets("ME2N").Range("AB6:AB31000").Formula = "=IF(AA6<T6,"False","True")"

excel vba if-statement conditional-statements conditional-formatting
1个回答
0
投票

VBA 代码中的问题与 Excel 期望公式的格式设置有关,特别是与文本字符串的引号和小数点/千位分隔符的使用有关。以下是需要考虑的几点:

  1. 字符串的引号:包含文本字符串的 Excel 公式应在文本两边使用双引号。在VBA中,您需要使用双引号两次才能正确转义它们。

  2. 逗号与分号:根据您的 Excel 区域设置,列表分隔符可能是逗号或分号。在许多地区,列表分隔符是逗号,而不是分号。

  3. 公式本地化:如果您的 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

通过使用正确的格式,您应该避免语法错误并在指定范围内成功应用公式。

© www.soinside.com 2019 - 2024. All rights reserved.