On... GOSUB, on... GOTO-AnweisungenOn...GoSub, On...GoTo statements

Verzweigung zu einer von mehreren angegebenen Zeilen, je nach Wert eines Ausdrucks.Branch to one of several specified lines, depending on the value of an expression.

SyntaxSyntax

On expression GoSub destinationlistOn expression GoSub destinationlist
On expression GoTo destinationlistOn expression GoTo destinationlist


Die Syntax der On...GoSub - und der On...GoTo -Anweisung weist folgende Teile auf:The On...GoSub and On...GoTo statement syntax has these parts:

TeilPart BeschreibungDescription
expressionexpression Erforderlich.Required. Ein numerischer Ausdruck, der zu einer ganzen Zahl zwischen 0 und 255 (einschließlich) ausgewertet wird.Any numeric expression that evaluates to a whole number between 0 and 255, inclusive. Wenn expression keine ganze Zahl ist, wird sie vor der Bewertung gerundet.If expression is any number other than a whole number, it is rounded before it is evaluated.
Ziellistedestinationlist Erforderlich.Required. Eine durch Kommas getrennte Liste mit Zeilennummern oder Zeilenbezeichnungen.List of line numbers or line labels separated by commas.

HinweiseRemarks

Der Wert expression bestimmt, welche Zeile zu destinationlist verzweigt wird.The value of expression determines which line is branched to in destinationlist. 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:If the value of expression is less than 1 or greater than the number of items in the list, one of the following results occurs:

Wenn AusdruckIf expression is ThenThen
Gleich 0Equal to 0 Das Steuerelement fällt auf die Anweisung, die On...GoSub oder On...GoTo folgt.Control drops to the statement following On...GoSub or On...GoTo.
Größer als die Anzahl der ListenelementeGreater than number of items in list Das Steuerelement fällt auf die Anweisung, die On...GoSub oder On...GoTo folgt.Control drops to the statement following On...GoSub or On...GoTo.
NegativNegative Fehler.An error occurs.
Größer als 255Greater than 255 Fehler.An error occurs.

Sie können Zeilennummern und Zeilenbezeichnungen in derselben Liste mischen.You can mix line numbers and line labels in the same list. Außerdem können Sie mit On...GoSub und On...GoTo beliebig viele Zeilenbezeichnungen und Zeilennummern verwenden.You can use as many line labels and line numbers as you like with On...GoSub and On...GoTo. 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.However, if you use more labels or numbers than fit on a single line, you must use the line-continuation character to continue the logical line onto the next physical line.

Tipp

Select Case bietet eine strukturiertere und flexiblere Möglichkeit, um mehrere Verzweigungen zu erstellen.Select Case provides a more structured and flexible way to perform multiple branching.

BeispielExample

In diesem Beispiel werden die On...GoSub- und On...GoTo-Anweisungen verwendet, um Verzweigungen zu Unterroutinen bzw. zu Zeilenbezeichnungen zu erstellen.This example uses the On...GoSub and On...GoTo statements to branch to subroutines and line labels, respectively.

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 auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.