在Java或C#中,AND
语句从左到右进行评估。如果第一个条件不为真,则不评估第二个条件。如果您的第二个条件会导致java.lang.arrayindexoutofboundsexception
。
我的Excel-VBA应用程序中有类似的情况。我有一个if语句:
If condition1 = false And cellElement - 1 <> "" Then
...
即使VBA - Run Time Error 1004 'Application Defined or Object Defined Error'
为假,它也会抛出condition1
。
我的问题是,即使第一个条件为假,VBA也会评估AND语句中的第二个条件吗?
我目前的工作很丑陋,但确实有效:
Dim b As Boolean
If condition1 = false Then
b = false
Else
b = cellElement - 1 <> ""
If b Then...
谢谢!