Wie verwende ich die GoTo-Anweisung in VBA?

In VBA (Visual Basic for Applications) wird die `GoTo`-Anweisung verwendet, um den Programmablauf bedingt oder unbedingt zu einer bestimmten Stelle im Code zu verschieben. Die Verwendung von `GoTo` wird allerdings oft vermieden, da sie den Code schwer lesbar und wartbar machen kann. Stattdessen werden strukturierte Kontrollflussanweisungen wie Schleifen und If-Else-Strukturen bevorzugt. Dennoch kann `GoTo` in manchen Situationen nützlich sein, zum Beispiel zur Fehlerbehandlung.

Hier ist ein einfaches Beispiel, wie die `GoTo`-Anweisung in VBA verwendet wird:

Sub BeispielMitGoTo()
    Dim zahl As Integer
    zahl = 10
    
    If zahl > 5 Then
        GoTo GroessereZahl
    End If
    
    MsgBox "Die Zahl ist 5 oder kleiner."
    Exit Sub
    
GroessereZahl:
    MsgBox "Die Zahl ist größer als 5."
End Sub

In diesem Beispiel wird abhängig vom Wert der Variablen `zahl` entschieden, zu welchem Programmabschnitt der Code springt.

Ein häufigeres Anwendungsgebiet für `GoTo` ist die Fehlerbehandlung. Dabei wird `On Error GoTo` verwendet. Hier ein einfaches Beispiel:

Sub BeispielMitFehlerbehandlung()
    On Error GoTo FehlerBehandlung
    
    Dim zahl As Integer
    zahl = 5 / 0 ' Dieser Ausdruck wird einen Fehler erzeugen.
    
    Exit Sub ' Verhindert, dass die Fehlerbehandlungsroutine unnötig durchlaufen wird.

FehlerBehandlung:
    MsgBox "Ein Fehler ist aufgetreten. Fehlernummer: " & Err.Number & ", Beschreibung: " & Err.Description
End Sub

In diesem Beispiel wird im Fehlerfall zu dem mit dem Label `FehlerBehandlung` versehenen Abschnitt gesprungen, wo der Fehler behandelt werden kann. Beachten Sie, dass `On Error GoTo -1` verwendet werden kann, um den Fehlerkontext zurückzusetzen, oder `Resume Next`, um mit der nächsten Anweisung nach dem Fehler fortzufahren.

Obwohl `GoTo` gelegentlich sinnvoll ist, sollten Sie es sparsam und bedacht einsetzen, um die Klarheit und Wartbarkeit Ihres Codes zu gewährleisten.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project