En... GoSub, On... Instrucciones GoTo

Crean una bifurcación a una de las distintas líneas especificadas, según el valor de una expresión.

Sintaxis

En laexpresiónGoSubdestinationlist
Enla expresiónGoTodestinationlist

La sintaxis de las instrucciones On...GoSub y On...GoTo tiene estas partes:

Parte Descripción
expression Obligatorio. Cualquier expresión numérica que evalúe un número entero entre 0 y 255, ambos incluidos. Si la expresión es cualquier otro número que no sea un número entero, se redondea antes de evaluarlo.
destinationlist Obligatorio. Lista de números de línea o etiquetas de línea separados por comas.

Comentarios

El valor de la expresión determina qué línea se bifurca en listaDestino. Si el valor de expresión es inferior a 1 o superior al número de elementos de la lista, se produce uno de los siguientes resultados:

Si la expresión es Then
Igual a 0 El control cae hasta la instrucción que sigue a On...GoSub o On...GoTo.
Superior al número de elementos de la lista El control cae a la instrucción que sigue a On...GoSub o On...GoTo.
Negativo Se produce un error.
Superior a 255 Se produce un error.

Puede mezclar números de línea y etiquetas de línea en la misma lista. Use tantas etiquetas de línea y números de línea como desee con On... GoSub y On... Vaya a ver. Sin embargo, si usa más etiquetas o números de los que pueden ajustarse a una única línea, debe usar el carácter de continuación de línea para seguir la línea lógica en la siguiente línea física.

Sugerencia

Select Case proporciona una forma más estructurada y flexible de realizar varias bifurcaciones.

Ejemplo:

En este ejemplo se usan las instrucciones On...GoSub y On...GoTo para crear una bifurcación a subrutinas y etiquetas de línea respectivamente.

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

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.