Freigeben über


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.