Exit: Die Abbruchanweisung

exit Gelegentlich kommt es vor, dass man eine Schleife vorzeitig verlassen will. Dafür gibt es die Exit-Anweisung.

Mit Exit For wird eine For-Schleife abgebrochen.

Sub suchInFor()
Dim a(9) As Long
Dim i As Long

a(5) = -1       'Ein Arrayfeld wird negativ belegt

For i = 0 To 9  'Welches war es nochmal?
    If a(i) < 0 Then
        Debug.Print "Feld " & i & " ist negativ!"
        Exit For
    End If
    Debug.Print "Feld " & i & " ist nicht negativ"
Next

End Sub

In dieser Prozedur wird erst ein Array aus 10 Feldern (0 bis 9) deklariert, und eines davon mit einem negativen Wert belegt. Die übrigen Felder des Arrays enthalten den Wert 0. Anschließend wird das gesamte Array in einer For-Schleife durchlaufen und dabei jeweils geprüft, ob der Wert negativ ist. Sobald ein negativer Wert gefunden wird, wird die Schleife beendet.

Analog dazu bricht Exit Do eine Do-Schleife ab.

Auch eine Prozedur kann vorzeitig beendet werden.

Sub toterCode()

Debug.Print "Diese Zeile wird ausgedruckt"
Exit Sub
Debug.Print "Diese Zeile aber nie"

End Sub