Compartilhar via


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

Ramificar para uma de várias linhas especificadas, consoante o valor de uma expressão.

Sintaxe

Lista de destinodo GoSub da expressão
Lista de destinoGoTo da expressão

O Ligado... GoSub e On... A sintaxe da instrução GoTo tem as seguintes partes:

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

Comentários

O valor da expressão determina para que linha está ramificada na lista de destino. Se o valor da expressão for inferior a 1 ou superior ao número de itens na lista, ocorre um dos seguintes resultados:

Se a expressão for Then
Igual a 0 O controlo cai para a instrução a seguir a Ativado... GoSub ou Ligado... Ir Para.
Maior que o número de itens na lista O controlo cai para a instrução a seguir a Ativado... GoSub ou Ligado... Ir Para.
Negativo Ocorre um erro.
Maior que 255 Ocorre um erro.

Pode misturar números de linha e etiquetas de linha na mesma lista. Utilize tantas etiquetas de linha e números de linha quanto quiser com Ativado... GoSub e On... Ir Para. No entanto, se utilizar mais etiquetas ou números do que caber numa única linha, tem de utilizar o caráter de continuação de linha para continuar a linha lógica para a linha física seguinte.

Dica

Selecionar Caso fornece uma forma mais estruturada e flexível de efetuar várias ramificações.

Exemplo

Este exemplo utiliza a opção Ativado... GoSub e On... Instruções GoTo para ramificar para subroutinas e etiquetas de linha, respetivamente.

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.