布尔表达式 - 操作顺序

时间:2008-12-05 22:32:07

标签: excel vba excel-vba boolean operator-precedence

我在Excel VBA中进行了测试:

If (test1) And (test2) And (test3) Then
    'do something
End If

在C,Java等中首先运行test1,然后运行test2,然后运行test3。重要的是,如果test1为false,则整个测试都是错误的,因此剩余的测试不会运行。

在这种情况下,VBA会发生这种情况吗?如果是,测试运行的顺序是什么?

1 个答案:

答案 0 :(得分:9)

在.NET之前的所有VB中都没有短路这样的东西。即使不需要,也将评估所有表达式。如果你想要短路,请做嵌套的IF。