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