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

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

Sintaxe

NaexpressãoGoSubdestinationlist
NaexpressãoLista de destinos do GoTo

O On... GoSub e assim por diante... A sintaxe da instrução GoTo tem estas partes:

Sair Descrição
expressão Obrigatório. Qualquer expressão numérica 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, ele será arredondado antes de ser avaliado.
lista de destinos 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 para 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 Control cai para a declaração seguinte em... GoSub ou On... Ir para.
Maior que o número de itens na lista Control cai para a declaração seguinte em... GoSub ou On... Ir para.
Negativo Ocorre um erro.
Maior que 255 Ocorre um erro.

Você pode misturar números de linhas e rótulos de linhas na mesma lista. Use quantos rótulos de linha e números de linha quiser com o On... GoSub e assim por diante... Ir para. No entanto, se você usar mais rótulos ou números do que cabem 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 Caso fornece uma maneira mais estruturada e flexível de executar várias ramificações.

Exemplo

Este exemplo usa o On... GoSub e assim por diante... 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.