Em... GoSub, On... Instruções goto

Ramificar para uma das várias linhas especificadas, dependendo do valor de uma expressão.

Sintaxe

NaexpressãoLista de destino do GoSub
NaexpressãoGoTodestinationlist

O On... GoSub e On... A sintaxe de instrução GoTo tem estas partes:

Sair Descrição
expressão Obrigatório. Qualquer expressão numérica que seja avaliada como um número inteiro entre 0 e 255, inclusive. Se a expressão for qualquer número diferente de um número inteiro, ela será arredondada antes de ser avaliada.
destinationlist Obrigatório. Lista de números de linha ou rótulos de linha separados por vírgulas.

Comentários

O valor da expressão determina a qual linha é ramificada na lista de destino. Se o valor da expressão for menor que 1 ou maior que o número de itens na lista, ocorrerá um dos seguintes resultados:

Se a expressão for Then
Igual a 0 O controle cai para a instrução a seguir Em... GoSub ou On... GoTo.
Maior que o número de itens na lista O controle cai para a instrução a seguir Em... GoSub ou On... GoTo.
Negativo Ocorre um erro.
Maior que 255 Ocorre um erro.

Você pode misturar números de linha e rótulos de linha na mesma lista. Use tantos rótulos de linha e números de linha quanto quiser com On... GoSub e On... GoTo. No entanto, se você usar mais rótulos ou números do que se encaixar em uma única linha, deverá usar o caractere de continuação de linha para continuar a linha lógica na próxima linha física.

Dica

Selecionar Case fornece uma maneira mais estruturada e flexível de executar várias ramificações.

Exemplo

Este exemplo usa o On... GoSub e On... Instruções goTo para ramificar para sub-rotinas e rótulos de linha, 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

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.