Instrução GoTo do Excel VBA

A instrução Goto do VBA é usada para superar os erros previstos enquanto adicionamos e criamos um enorme código de linhas no VBA. Essa função no VBA nos permite acompanhar o código completo, de acordo com nossas previsões ou suposições. Com a ajuda Goto, podemos ir para qualquer código de linha ou local especificado no VBA. Há duas maneiras de fazer isso, que veremos nos próximos exemplos.

Como usar a instrução Goto do VBA do Excel?

Vamos aprender como usar a instrução Goto do VBA do Excel com alguns exemplos.

Você pode fazer o download deste modelo do VBA GoTo Excel aqui - Modelo do VBA GoTo Excel

Exemplo 1

A primeira maneira de usar o VBA Goto é pelo método Application.Goto . Com a ajuda da declaração Application.Goto, podemos chegar a qualquer local, pasta de trabalho ou planilha específica que esteja aberta atualmente. Esta declaração será como abaixo.

  • (Referência): Isso não passa de uma referência de célula especificada. Se a referência não for fornecida por padrão, você será levado para o último intervalo de células usado.
  • (Rolagem): Esta é uma declaração lógica de VERDADEIRO ou FALSO. Se o valor for VERDADEIRO, ele rolará pela janela; se o valor, se FALSE, não rolará pela janela.

Para isso, vá para a janela VBA e clique em Módulo, que está no menu Inserir, como mostrado abaixo.

Agora ele abrirá um novo módulo. Escreva a subcategoria de uma macro com o nome Goto, pois estamos executando esse código, como mostrado abaixo.

Código:

 Sub VBAGoto () End Sub 

Agora escreva Application.Goto para ativar a aplicação ou o local para onde queremos ir.

Código:

 Sub VBAGoto () Application.Goto End Sub 

Depois disso, dê Referência a qualquer planilha ou pasta de trabalho e intervalo de células. Aqui, fornecemos o intervalo da célula B3 e as planilhas nomeadas como "VBA Goto".

Código:

 Sub VBAGoto () Application.Goto Referência: = Planilhas ("VBA_Goto1"). Range ("B3"), End Sub 

Agora, para realmente ir para a célula mencionada, precisamos adicionar o argumento Scroll, que nos levará diretamente à célula especificada. Agora vamos mudar o argumento de rolagem de FALSE, como mostrado abaixo.

Código:

 Sub VBAGoto () Application.Goto Referência: = Planilhas ("VBA_Goto1"). Range ("B3"), Scroll: = False End Sub 

Após executar o código usando a tecla F5 ou manualmente, veremos que o cursor será deslocado para a célula B3 sem alterar a orientação da planilha selecionada, como mostrado abaixo.

Agora vamos mudar o argumento Scroll de FALSE para TRUE.

Código:

 Sub VBAGoto () Application.Goto Referência: = Planilhas ("VBA_Goto1"). Range ("B3"), Scroll: = True End Sub 

Inicialmente, estamos mantendo o cursor na célula A5, como mostrado abaixo. Agora execute o código completo usando a tecla F5 ou manualmente. Vamos ver o cursor que estava na célula A5, agora é rolado para cima e deslocado para a célula B3 e toda a tabela foi movida para o nível superior da planilha começando com a mesma célula que B3, como mostrado na captura de tela abaixo.

Exemplo 2

Há outra maneira de usar o argumento VBA Goto. Usando Goto no VBA neste exemplo, podemos pular o argumento que está causando um erro. Para isso, insira um novo módulo no VBA e inicie a Subcategoria com o nome do argumento usado como mostrado abaixo. Você pode usar qualquer outro nome.

Código:

 Sub VBAGoto () End Sub 

Para isso, consideraremos 3 números inteiros X, Y e Z abrindo a subcategoria no VBA, como mostrado abaixo.

Código:

 Sub VBAGoto () Dim X Como Inteiro, Y Como Inteiro, Z Como Inteiro Final Sub 

Agora considere também alguma divisão matemática em que dividiremos 10, 20 e 30 com 0, 2 e 4, como mostrado abaixo.

Código:

 Sub VBAGoto () Dim X Como Inteiro, Y Como Inteiro, Z Como Inteiro X = 10/0 Y = 20/2 Z = 30/4 End Sub 

Se executarmos o código, receberemos a mesma mensagem de erro do erro de tempo de execução 11.

Mensagem de erro acima O erro em tempo de execução '11' ocorre apenas quando a expressão matemática escrita está incorreta. Agora, para anular esse erro, usaremos o texto On Error GoTo com a palavra YResult para pular a mensagem de erro e obter a saída que funciona bem, como mostrado abaixo.

Ainda assim, nosso código não está completo. Usar Goto com a instrução “ YResult :” somente ignorará a linha de código do erro. Mas ele mostrará novamente o erro como Labe não definido como mostrado abaixo.

Código:

 Se você está procurando por uma solução para o seu problema, entre em contato conosco através do formulário abaixo. 

Agora, para concluir, precisamos definir o Rótulo . Label é a parte da instrução em VBA Coding, usada quando queremos pular uma certa parte do código para qualquer linha de código aplicável definida. Como já temos o YResult com o argumento Goto . Em seguida, inseriremos o mesmo antes do número Y. Agora execute o código novamente.

Código:

 Sub VBAGoto () Dim X Como Inteiro, Y Como Inteiro, Z Como Inteiro No Erro GoTo YResult: X = 10/0 YResult: Y = 20/2 Z = 30/4 End Sub 

Como visto e feito, não recebemos nenhuma mensagem de erro, o que significa que nosso código está correto e está pulando a linha de código que estava causando um erro e fornecendo a saída onde o código correto foi gravado. Agora, para imprimir o resultado do código, é necessário inserir caixas de mensagem para cada número inteiro com o argumento de ajuda MsgBox, como mostrado abaixo.

Código:

 Sub VBAGoto () Dim X Como Inteiro, Y Como Inteiro, Z Como Inteiro No Erro GoTo YResult: X = 10/0 YResult: Y = 20/2 Z = 30/4 MsgBox X MsgBox X MsgBox Y MsgBox Z End Sub 

Uma vez feito, execute o código completo para ver a saída. Iremos a saída da divisão de cada número inteiro definido como 0, 10 e 8, como mostrado na captura de tela abaixo também.

No erro, a instrução GoTo YResult nos ajudou a pular diretamente para o número inteiro do ponto de resultado mencionado, como fizemos no número inteiro Y. E a saída para X como 0 mostra que houve um argumento de instrução incorreto gravado. Podemos usar o Label antes de Z, mas isso nos daria o resultado apenas de Z inteiro. Para X e Y, mostrará novamente 0 como saída.

Prós do VBA On Error

  • Podemos calcular qualquer fórmula matemática, mesmo que esteja incorreta.
  • Para estruturas de codificação maiores, onde há chances ou erros, o uso do GoTo pode fornecer resultados corretos, mesmo entre a linha de códigos.
  • Isso fornece um melhor resultado em comparação com o resultado obtido dos cálculos normais do Excel, apesar de ter um argumento incorreto.

Coisas para lembrar

  • Lembre-se do arquivo no arquivo Excel ativado por macro para que possamos usar o código VBA criado várias e várias vezes.
  • Compile o código escrito antes de implementar com qualquer requisito do Excel.
  • Você pode atribuir o código escrito a qualquer botão para que possamos clicar rapidamente no botão e executar o código.
  • Use o Label como mostrado no exemplo-2 adequadamente, para obtermos o resultado para o código correto completo.

Artigos recomendados

Este foi um guia para a instrução VBA GoTo. Aqui discutimos como usar a instrução GoTo do Excel VBA, juntamente com alguns exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Como usar os loops do VBA do Excel?
  2. Função VBA no Excel
  3. Guia de intervalo no Excel
  4. Como usar a função VBA VLOOKUP?

Categoria: