Auf... GoSub, On... GoTo-Anweisungen

Verzweigung zu einer von mehreren angegebenen Zeilen, je nach Wert eines Ausdrucks.

Syntax

AufAusdruckGoSubdestinationlist
OnexpressionGoTodestinationlist

Die Syntax der On...GoSub- und der On...GoTo-Anweisung weist folgende Teile auf:

Teil Beschreibung
expression Erforderlich. Ein numerischer Ausdruck, der zu einer ganzen Zahl zwischen 0 und 255 (einschließlich) ausgewertet wird. Wenn expression keine ganze Zahl ist, wird sie vor der Bewertung gerundet.
destinationlist Erforderlich. Eine durch Kommas getrennte Liste mit Zeilennummern oder Zeilenbezeichnungen.

HinwBemerkungeneise

Der Wert expression bestimmt, welche Zeile zu destinationlist verzweigt wird. Wenn der Wert von expression kleiner als 1 oder größer als die Anzahl der Elemente der Liste ist, kommt es zu einem der folgenden Ereignissen:

expression-Wert Then
Gleich 0 Das Steuerelement fällt auf die Anweisung, die On...GoSub oder On...GoTo folgt.
Größer als die Anzahl der Listenelemente Das Steuerelement fällt auf die Anweisung, die On...GoSub oder On...GoTo folgt.
Negativ Fehler.
Größer als 255 Fehler.

Sie können Zeilennummern und Zeilenbezeichnungen in derselben Liste mischen. Verwenden Sie beliebig viele Zeilenbeschriftungen und Zeilennummern mit Ein... GoSub und Ein... Gehe zu. Wenn Sie jedoch mehr Bezeichnungen oder Nummern verwenden, als auf eine einzelne Zeile passen, müssen Sie das Zeilenfortsetzungszeichen verwenden, um die logische Zeile auf der nächsten physischen Zeile fortzusetzen.

Tipp

Select Case bietet eine strukturiertere und flexiblere Möglichkeit, um mehrere Verzweigungen zu erstellen.

Beispiel

In diesem Beispiel werden die On...GoSub- und On...GoTo-Anweisungen verwendet, um Verzweigungen zu Unterroutinen bzw. zu Zeilenbezeichnungen zu erstellen.

Sub OnGosubGotoDemo() 
Dim Number, MyString 
 Number = 2 ' Initialize variable. 
 ' Branch to Sub2. 
 On Number GoSub Sub1, Sub2 ' Execution resumes here after 
 ' On...GoSub. 
 On Number GoTo Line1, Line2 ' Branch to Line2. 
 ' Execution does not resume here after On...GoTo. 
 Exit Sub 
Sub1: 
 MyString = "In Sub1" : Return 
Sub2: 
 MyString = "In Sub2" : Return 
Line1: 
 MyString = "In Line1" 
Line2: 
 MyString = "In Line2" 
End Sub

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.