Do...Loop-Anweisung
Wiederholt einen Block von Anweisungen, während eine Bedingung True ist oder bis eine Bedingung True wird.
Syntax
Do [{ While | Until } Bedingung ] [ Anweisungen ] [ Exit Do ] [ Anweisungen ] Schleife
Alternativ können Sie folgende Syntax verwenden:
Do [ -Anweisungen ] [ Exit Do ] [ Anweisungen ] Loop [{ While | Until } Bedingung ]
Die Anweisungssyntax DoLoop hat folgende Teile:
Teil | Beschreibung |
---|---|
Bedingung | Optional. Numerischer Ausdruck oder Zeichenfolgenausdruck, der True oder False ist. Wenn BedingungNull ist, wird Bedingung als False behandelt. |
statements | Eine oder mehrere Anweisungen, die wiederholt werden, solange oder bis BedingungTrue ist. |
Bemerkungen
Eine beliebige Anzahl an Exit Do-Anweisungen kann an einer beliebigen Stelle in der Do…Loop-Anweisung platziert werden, um eine Alternative zur Beendigung einer Do…Loop-Anweisung darzustellen. Exit Do wird häufig nach der Evaluierung einer Bedingung verwendet, beispielsweise If…Then. In diesem Fall überträgt die Exit Do-Anweisung die Steuerung auf die Anweisung, die unmittelbar auf Loop folgt.
Wenn Exit Do innerhalb verschachtelter Do...Loop-Anweisungen verwendet wird, überträgt es die Steuerung auf die Schleife, die sich eine Verschachtelungsebene über der Schleife befindet, in der Exit Do auftritt.
Beispiel
Dieses Beispiel zeigt, wie Do...Loop-Anweisungen verwendet werden können. Die innere Do...Loop-Anweisung führt 10 Schleifen aus, fragt den Benutzer, ob sie den Vorgang fortsetzen soll, legt den Wert des Flag auf False fest (bei Auswahl von Nein) und beendet vorzeitig durch Verwendung der Exit Do-Anweisung. Die äußere Schleife wird sofort nach dem Überprüfen des Flag-Werts beendet.
Public Sub LoopExample()
Dim Check As Boolean, Counter As Long, Total As Long
Check = True: Counter = 0: Total = 0 ' Initialize variables.
Do ' Outer loop.
Do While Counter < 20 ' Inner Loop
Counter = Counter + 1 ' Increment Counter.
If Counter Mod 10 = 0 Then ' Check in with the user on every multiple of 10.
Check = (MsgBox("Keep going?", vbYesNo) = vbYes) ' Stop when user click's on No
If Not Check Then Exit Do ' Exit inner loop.
End If
Loop
Total = Total + Counter ' Exit Do Lands here.
Counter = 0
Loop Until Check = False ' Exit outer loop immediately.
MsgBox "Counted to: " & Total
End Sub
Siehe auch
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.