使用 Or 逻辑运算符在表达式内同时计算两个条件

Lor*_*has 5 excel vba logical-operators

所以,我有以下简短代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'More code here    

    If Target.Cells.Count > 1 Or Target = Empty Then
       Exit Sub
    End If

    'More code here.
End Sub
Run Code Online (Sandbox Code Playgroud)

如果 A 部分为假,它不会先评估 A,然后再评估 B,而是同时评估两者,这是我不记得 vba 之前做过的事情。

抱歉,如果我的解释不够好,请使用英语(如果不是我的母语)。请全面且富有建设性。最近我在这里的评论经历了很多不好的经历。

Vit*_*are 0

您可以在这里找到答案:

  1. 当第一个参数为 false 时,VBA“And”运算符是否计算第二个参数?
  2. VBA 中的 AndAlso/OrElse

简而言之,VBA 中不存在逻辑表达式的本机短路求值。但您可以使用 Select Case 运算符来完成此操作。在这里查看有关该主题的更多信息https://en.wikipedia.org/wiki/Short- Circuit_evaluation

ps 对于你的情况,我会接受VBasic2008的建议