Branches unconditionally to a specified line within a procedure.
GoTo line
GoTo can branch only to lines within the procedure where it appears.
You cannot use a GoTo to branch from outside a For...Next, For Each...Next, SyncLock...End SyncLock, Try?Catch?Finally, or With...End With block to a label inside.
Within a Try?Catch?Finally block, you cannot use GoTo to branch into or out of a Catch or Finally block.
Note GoTo statements can make code difficult to read and maintain. Whenever possible, use Do...Loop, For...Next, If...Then...Else, Select Case, Try?Catch?Finally, While, and With...End With structures instead.
This example uses the GoTo statement to branch to line labels within a procedure.
Sub GotoStatementDemo() Dim Number As Integer dim MyString As String Number = 1 ' Initialize variable. ' Evaluate Number and branch to appropriate label. If Number = 1 ThenGoTo
Line1 ElseGoTo
Line2 Line1: MyString = "Number equals 1"GoTo
LastLine ' Go to LastLine. Line2: ' The following statement never gets executed because Number = 1. MyString = "Number equals 2" LastLine: ' Print "Number equals 1" in the Output window. Debug.WriteLine (MyString) End Sub
Do...Loop Statements | For...Next Statements | If...Then...Else Statements | Select...Case Statements