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.