Brechen Sie aus einer Weile aus ... Wend-Schleife


107

Ich benutze eine While ... Wend-Schleife von VBA.

Dim count as Integer

While True
    count=count+1

    If count = 10 Then
        ''What should be the statement to break the While...Wend loop? 
        ''Break or Exit While not working
    EndIf
Wend

Ich möchte keine Bedingung wie `While count <= 10 ... Wend verwenden

Antworten:


176

Eine While/ WendSchleife kann nur vorzeitig mit einem GOTOoder durch Verlassen eines äußeren Blocks ( Exit sub/ functionoder einer anderen exitierbaren Schleife) beendet werden.

Wechseln Sie Dostattdessen zu einer Schleife:

Do While True
    count = count + 1

    If count = 10 Then
        Exit Do
    End If
Loop

Oder um eine festgelegte Anzahl von Schleifen zu durchlaufen:

for count = 1 to 10
   msgbox count
next

( Exit Forkann oben verwendet werden, um vorzeitig zu beenden)


-1

Eine andere Möglichkeit wäre, eine Flag-Variable als zu setzen Booleanund diesen Wert dann basierend auf Ihren Kriterien zu ändern.

Dim count as Integer 
Dim flag as Boolean

flag = True

While flag
    count = count + 1 

    If count = 10 Then
        'Set the flag to false         '
        flag = false
    End If 
Wend

-1

Der beste Weg ist, eine AndKlausel in Ihrer WhileAussage zu verwenden

Dim count as Integer
count =0
While True And count <= 10
    count=count+1
    Debug.Print(count)
Wend
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.