做...循环直到多个条件

Orl*_*doT 3 excel vba loops excel-vba conditional-statements

我有一个简短的问题,我没有在网上找到具体的信息.我想执行一个Do...Loop Until循环,但我想在最后插入多个条件.我想要做:

Do
    ' ...my code...
Loop Until [Condition 1] And [Condition 2] And....And [Condition n]`
Run Code Online (Sandbox Code Playgroud)

这可能吗?

非常感谢,奥兰多

Lew*_*Lew 6

您可以使用And和/或Or

Do
  'Your code
Loop until condition1 And condition2
Run Code Online (Sandbox Code Playgroud)

And将一直持续到所有条件都满足。 Or当满足一个或多个条件时将继续。

您可以有任意数量的条件。


ome*_*pes 6

下面的例子展示了惰性求值的实现:

Do
    ' some operations
    Select Case False
        Case Condition1
        Case Condition2
        Case Condition3
        Case ConditionN
        Case Else Exit Do
    End Select
Loop
Run Code Online (Sandbox Code Playgroud)

这样的代码可以提高性能并加速代码执行。它一个接一个地评估条件,直到只有第一个错误结果,如果所有条件都为真,那么它退出循环,而传统And运算符评估所有条件而不管结果。


jsa*_*ezs 5

确实可能就像使用"if"语句一样,例如:

Do Until rngCell.Value="" Or rngCell.Value="abc"
   DatePresent = (rngCell.Value = "RESP") Or (rngCell.Value ="Respiratory")
   Set rngCell = rngCell.Offset(1)
Loop
Run Code Online (Sandbox Code Playgroud)