18.4. Verlassen von Kontrollstrukturen
und Prozeduren/Funktionen
Visual Basic führt den Code innerhalb der Kontrollstruktur aus,
bis eine Anfangsbedingung erfüllt ist, beendet dann die
Kontrollstruktur und führt den restlichen Teil der Prozedur aus.
In manchen Situationen lässt sich der Code jedoch beschleunigen,
wenn Sie nicht auf die Erfüllung der vorgegebenen Bedingung
warten, sondern die Struktur bereits unter einer anderen
Bedingung verlassen.
Wenn Sie z.B. ein Datenfeld mit einer Für...Nächste-Schleife
nach einem Wert durchsuchen und den Wert bereits beim ersten
Schleifendurchlauf finden, besteht kein Grund, das gesamte
Datenfeld zu durchsuchen. Sie können folglich die Schleife
sofort beenden. Eine ähnliche Situation liegt vor, wenn ein
Fehler auftritt bzw. ein bestimmtes Ereignis eintritt, wodurch
das Ausführen weiterer Aktionen durch die Prozedur überflüssig
wird.
Anweisungen:
Beispiele:
Function bei_5_schluss()
Dim i As Integer
For i = 1 To 10
Debug.Print "hallo"
If i = 5 Then Exit For
Next i
End Function
Hier eine
erste Möglichkeit, einer Fehlermeldung mit Programmabbruch zu
entgehen.
Function nullFehler(x As Single, y As Single)
If y = 0 Then
MsgBox ("Division durch Null nicht möglich")
Exit Function
End If
nullFehler = x / y
End Function
Die folgende Funktion liefert die Position des gesuchten Wertes
in der Liste durchsuchter Zellen, wobei von links nach rechts und
dann von oben nach unten gezählt wird. Beim Auftreten des
gesuchten Wertes werden der Zählvorgang und die Suche
unmittelbar beendet.
Function Position(Suchbereich, Suchwert)
Dim Zähler As Integer
Gefunden = False
For Each C In Suchbereich
Zähler = Zähler + 1
If C.Value = Suchwert Then
Gefunden = True
Exit For ' Zählen und Überprüfen
beenden
End If
Next C
If Gefunden Then
Position = Zähler
Else: Position = 0
End If
End Function
Sollten
in einem Suchbereich ungültige Werte gefunden werden, wird die
Funktion vorzeitig verlassen.
Function Zahlen(Suchbereich, Suchwert)
Dim Zähl As Integer
For Each C In Suchbereich
If C.Value = Suchwert Then
Zähl = Zähl + 1
Else: Exit
Function
End If
Next C
Zahlen = Zähl
End Function
5 | 3 | 4 |