Do… Loop Until with multiple conditions

2020-04-10 02:22发布

问题:

I have a quick question about which I did not find specific information on the web. I want to perform a Do...Loop Until loop, but I would like to insert more than one condition at the end. I would like to do:

Do
    ' ...my code...
Loop Until [Condition 1] And [Condition 2] And....And [Condition n]`

Is this possible?

Thank you very much in advance, Orlando

回答1:

The below example shows lazy evaluation implementation:

Do
    ' some operations
    Select Case False
        Case Condition1
        Case Condition2
        Case Condition3
        Case ConditionN
        Case Else Exit Do
    End Select
Loop

Such code allows to improve performance and speed up code execution. It evaluates conditions one by one until first false result only, if all conditions are true then it exits the loop, while conventional And operators evaluate all conditions regardless of the results.



回答2:

It is possible indeed as if you were using "if " statement, for example:

Do Until rngCell.Value="" Or rngCell.Value="abc"
   DatePresent = (rngCell.Value = "RESP") Or (rngCell.Value ="Respiratory")
   Set rngCell = rngCell.Offset(1)
Loop


回答3:

You can use And and/or Or:

Do
  'Your code
Loop until condition1 And condition2

And will continue all the time all conditions are met. Or will continue when one or more of the conditions are met.

You can have any number of conditions.