7 excel vba if-statement excel-vba conditional-statements
我只是想知道Or条件语句如何在VBA/VB6中工作.基本上,如果我们有If A Or B Then,布尔表达式的评估顺序是什么?如果A为真,B还会被评估吗?
以下是一些测试结果:
Public Sub DoTesting()
' Displays "Test1" followed by "Test2", so they're evaluated in order.
' Also, both expressions are evaluated even though Test1() is False.
If Test1() And Test2() Then
End If
' Displays "Test2" followed by "Test1", so they're evaluated in order.
' Also, both expressions are evaluated even though Test2() is True.
If Test2() Or Test1() Then
End If
' Displays "Test1" only. Test2() is not evaluated.
If Test1() Then If Test2() Then Debug.Print ""
End Sub
Public Function Test1() As Boolean
MsgBox "Test1"
Test1 = False
End Function
Public Function Test2() As Boolean
MsgBox "Test2"
Test2 = True
End Function
Run Code Online (Sandbox Code Playgroud)
因此,无论结果如何,始终按顺序评估a Or或an And中的两个表达式.您可以使用If ... Then If ... Then实现简单的内联短路.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |