VBA – Auf eine Zeilenbeschriftung springen (GoTo)
In this Article
Mit der GoTo-Anweisung in VBA können Sie zu einer Codezeile springen. Erstellen Sie zunächst eine Zeilenbeschriftung an einer beliebigen Stelle in Ihrem Code:
Sprung:
Fügen Sie dann die Anweisung „GoTo“ hinzu, um zur Zeilenbeschriftung zu springen
GoTo Sprung
GoTo – Beispiele
Dieses Beispiel prüft das Jahr. Wenn das Jahr 2019 oder später ist, springt es zur Zeilenbeschriftung „Sprung“. So können Sie Codezeilen überspringen, wenn bestimmte Bedingungen erfüllt sind.
Sub GoTo_Beispiel()
Dim Jahr As Integer
Jahr = 2019
If Jahr >= 2019 Then GoTo Sprung
'Daten für Jahre < 2019 verarbeiten
MsgBox "Jahr liegt vor 2019"
Sprung:
End Sub
GoTo – Mehrere Zeilenbeschriftungen
Sie können auch GoTo-Anweisungen verwenden, um zu relevanten Codezeilen zu springen. Lassen Sie uns unser vorheriges Beispiel so anpassen, dass wir je nach Jahr zu verschiedenen Codepositionen springen:
Sub GoTo_Ausdruck()
Dim Jahr As Integer
Jahr = 2019
If Jahr = 2019 Then
GoTo Jahr2019
ElseIf Jahr = 2010 Then
GoTo Jahr2020
Else
GoTo Jahr2021
End If
Jahr2019:
'2019 verarbeiten
MsgBox "Das Jahr ist 2019"
GoTo EndProc
Jahr2020:
'2020 verarbeiten
MsgBox "Das Jahr ist 2020"
GoTo EndProc
Jahr2021:
'2021+ verarbeiten
MsgBox "Das Jahr ist 2021+"
EndProc:
End Sub
Beachten Sie den Ausdruck „GoTo EndProc“ vor jeder Zeilenbeschriftung. Wir haben diese Codezeile hinzugefügt, damit diese Codeabschnitte übersprungen werden, wenn sie nicht durch das entsprechende „GoTo“ aufgerufen werden.
GoTo Error Handler – Ende der Prozedur
Verwenden wir nun die Fehlerbehandlung, um im Falle eines Fehlers zum Ende der Prozedur zu gelangen.
Sub GoTo_BeiFehler ()
Dim i As Integer
On Error GoTo EndProc
i = 5 / 0
MsgBox i
EndProc:
End Sub
GoTo – Code wiederholen
In unserem letzten Beispiel wird die GoTo-Anweisung verwendet, um einen Code zu wiederholen. Im Folgenden verwenden wir eine Ja/Nein-Meldungsbox (Klicken Sie hier, um mehr zu erfahren), um zu bestätigen, dass der Benutzer die Warnung zur Kenntnis genommen hat. Wenn er auf „Nein“ klickt, wird die Messagebox erneut angezeigt, bis er auf „Ja“ klickt (siehe GIF unten).
Sub GoTo_JaNeinMsgBox()
MeldungWiederholen:
Dim Antwort As Integer
Antwort = MsgBox("WARNUNG: Diese Datei wurde als schreibgeschützte Datei geöffnet, was bedeutet, dass alle Änderungen, die Sie vornehmen, nicht gespeichert werden, es sei denn, Sie haben Schreibrechte. " & _
vbNewLine & vbNewLine & "Wählen Sie Datei -> Speichern Als, um eine Kopie zu speichern, bevor Sie in dieser Datei arbeiten." & vbNewLine & vbNewLine & "Haben Sie verstanden?", vbExclamation + vbYesNo, "WARNING!")
If Antwort = vbNo Then GoTo MeldungWiederholen 'Wiederholen, bis der Benutzer auf "Ja" klickt
End Sub
VBA GoTo zu einer Zeilenbeschriftung in Access VBA
Alle oben genannten Beispiele funktionieren in Access VBA genau so wie in Excel VBA.
Sub GoToTesten()
On Error GoTo Beenden
DoCmd.OpenForm "FrmKunden"
Exit Sub
Beenden:
MsgBox "Das Formular kann nicht geöffnet werden."
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!