O que é?
É um desvio incondicional para uma linha especificada dentro de uma função VBA.
Estrutura
GoTo [label]
O argumento [label] obrigatório pode ser qualquer rótulo de linha ou número de linha.
Utilizado para identificar uma única linha de código. Um rótulo de linha pode ser qualquer combinação de caracteres que inicie com uma letra e termine com dois-pontos (:). Os rótulos de linha não diferenciam maiúsculas de minúsculas e devem iniciar na primeira coluna.
Utilizado para identificar uma única linha de código. Um número de linha pode ser qualquer combinação de dígitos que seja exclusiva dentro do módulo no qual é utilizado. Os números de linha devem iniciar na primeira coluna.
Exemplo
Abaixo segue um trecho de código que refleto o uso do Goto:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
O código acima mostra mensagens em uma sequência definida pela instrução Goto.
A instrução não obedece nenhum critério, mesmo sendo executada de dentro uma
estrutura condicional (If...Else) ou de repetição (While, For, For
Each), fazendo desvio conforme informado. Neste caso, a instrução segue a
sequência de execução normalmente até a linha 4, quando é desviada para o
Rotulo2 na linha 9, que executa até a linha 11 que desvia a execução para o
Rotulo1 na linha 6, que por fim executa até a instrução na linha 8 e quando é
desviada para o Saida na linha 12, seguindo a execução até o fim da função.
Veja este outrou exemplo de código:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Comentários
GoTo pode desviar somente para linhas de dentro da função em que é colocado.
Observação Excesso de instruções GoTo pode tornar difícil a leitura e depuração do código. Sempre que possível, use instruções de controle estruturado (Do...Loop, For...Next, If...Then...Else, Select Case).
Tomás Vásquez