我在 Excel VBA 中有一个测试:
If (test1) And (test2) And (test3) Then 'do something End If
在 C、Java 等中,test1 将首先运行,然后是 test2,然后是 test3。重要的是,如果 test1 为 false,则整个测试都是 false,因此其余测试不会运行。
在这种情况下使用 VBA 会发生这种情况吗?如果是这样,测试按什么顺序运行?
最佳答案
在 .NET 之前的所有 VB 中,都不存在短路这样的事情。即使不需要,所有表达式都会被评估。如果您想要短路,请执行嵌套 IF。
关于vba - boolean 表达式 - 运算顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345399/