我在Excel VBA中进行了测试:
If (test1) And (test2) And (test3) Then 'do something End If
在C,Java等中首先运行test1,然后运行test2,然后运行test3。重要的是,如果test1为false,则整个测试都是错误的,因此剩余的测试不会运行。
在这种情况下,VBA会发生这种情况吗?如果是,测试运行的顺序是什么?
答案 0 :(得分:9)
在.NET之前的所有VB中都没有短路这样的东西。即使不需要,也将评估所有表达式。如果你想要短路,请做嵌套的IF。