Вопрос

У меня есть тест в Excel VBA:

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

В C, Java и т. д. сначала будет выполняться test1, затем test2, затем test3. Критически, если test1 имеет значение false, весь тест является false, поэтому остальные тесты не запускаются.

Это случается в этом случае с VBA? Если да, то в каком порядке выполняются тесты?

Это было полезно?

Решение

Во всех VB до .NET нет такого понятия, как короткое замыкание. Все выражения будут оцениваться, даже если это не требуется. Если вы хотите короткое замыкание, делайте вложенные IF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top