Excel VBA On Error Resume Próximo
A manipulação de erros é um mecanismo muito útil e significativo para linguagens de programação como controle ou prevenção de erros do VBA, que é um aspecto da manipulação de erros, que significa tomar medidas eficazes e significativas dentro de um script VBA para evitar a ocorrência de mensagens pop-up de erros. A instrução Excel VBA On Error Resume Next ignora a linha de código que causa um erro e continua ou roteia a execução para a próxima linha após a linha que causou o erro.
NOTA: A instrução Error Resume Next não corrige os erros de tempo de execução, mas é um erro ignorando onde a execução do programa VB continuará a partir da linha que causou o erro de tempo de execução.Basicamente, Ao retomar erro, o próximo é usado quando você deseja ignorar o erro e continuar ou retomar a execução do código na próxima célula.
Tipos de erros no VBA
Abaixo estão os diferentes tipos de erros no VBA:
- Erro de sintaxe ou erro de análise.
- Erro de compilação ou compilação.
- Erro de tempo de execução.
- Erro lógico.
Os erros acima podem ser corrigidos com a ajuda da depuração de instruções 'On Error' em um código. O erro de tempo de execução pode ser evitado com a ajuda de On Error Resume Next.
Erro de tempo de execução do VBA:
Antes da explicação de On Error Resume Next, você deve estar ciente do erro de tempo de execução quando declarações ou termos matemáticos impossíveis estiverem presentes em uma instrução, e ocorrerá esse erro de tempo de execução.
Exemplos de Excel VBA no erro continuar Avançar
Abaixo estão os exemplos diferentes de On Error Resume Next no Excel VBA:
Você pode fazer o download deste VBA On Error Resume Next Excel Template aqui - VBA On Error Resume Next Excel TemplateVBA On Error Resume Next - Exemplo # 1
Aqui, um erro será ignorado e a execução do código continuará. No exemplo abaixo mencionado, 6 não pode ser dividido por zero, se você executá-lo sem inserir a instrução On Error Resume Next, ocorre um erro de tempo de execução abaixo mencionado.
Código:
Sub RUNTIME_1 () MsgBox 6/0 End Sub
Se On Error Resume Next for inserido na parte superior do código após a instrução SUB, ele ignorará o erro de tempo de execução e passará para a próxima instrução, resultando em uma saída de 6/2 (caixa de mensagem pop-up com o resultado).
Código:
Sub RUNTIME_2 () No erro Continuar Avançar MsgBox 6/0 MsgBox 6/2 End Sub
VBA On Error Resume Next - Exemplo # 2
Posso usar o On Error Resume Next em qualquer lugar do código, do começo ao fim. No exemplo abaixo mencionado, eu tenho que fazer um cálculo 3, ou seja,
9/3 =?
9/0 =?
9/2 =?
No exemplo acima mencionado, você pode observar um segundo cálculo em que qualquer número não pode ser dividido por zero, ou seja, 9 não pode ser dividido por zero na segunda etapa. Suponha que se você executar a macro sem inserir a instrução On Error Resume Next, agora eu posso executar o código passo a passo com a ajuda da tecla step into ou F8 para entender como ela funciona.
Agora, eu executo o código acima, clicando na opção Step Into ou na tecla F8 com frequência, passo a passo. Apenas copio o código acima e começo a executá-lo passo a passo, para a primeira etapa da caixa de mensagem de cálculo 3 aparece.
Código:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Quando executo a segunda linha de código, o erro de tempo de execução abaixo mencionado ocorre na segunda etapa de um código, onde qualquer número não pode ser dividido por zero, ou seja, 9 não pode ser dividido por zero na segunda etapa.
Código:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Agora, se eu clicar em debug, ele não poderá prosseguir, onde me levará para a segunda linha de código (fica destacada em amarelo), onde eu preciso fazer a correção. Portanto, aqui, se clicar mais na opção Entrar ou na tecla F8, o terceiro cálculo neste código não será executado.
Para corrigir ou manipular esse erro de tempo de execução, eu tenho que usar ou executar a instrução OnError Resume Next acima de um segundo código ou no início do código abaixo da subestação. para que ela pule essa linha de código e passe para a terceira etapa do código e calcule o valor.
Código:
Sub RUNTIME_30 () MsgBox 9/3 em erro Continuar Avançar MsgBox 9/0 MsgBox 9/2 End Sub
OU
Sub RUNTIME_31 () No erro Continuar Avançar MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Agora, eu adicionei no código de erro a próxima instrução ao código, onde você pode usar qualquer um dos códigos acima, se você executá-lo passo a passo, você receberá um pop-up de duas mensagens, um é o primeiro código de saída e o terceiro código Cálculo. Em Erro, Continuar em seguida ignora o erro de tempo de execução no segundo código e passa para o terceiro código.
VBA On Error Resume Next - Exemplo # 2
Agora, veremos a combinação de retomar no erro em seguida com o erro GoTo 0. No código abaixo, ele ignorará os erros até atingir a instrução On Error GoTo 0 . Após a instrução On Error GoTo 0, o código retorna ou prossegue para a verificação normal de erros e dispara o erro esperado adiante.
Código:
Sub onError_Go_to_0_with_Resume_next () No erro Continuar Avançar Mate "C: TempFile.exe" No erro Ir para o intervalo 0 ("A1"). Valor = 100 / "PETER" End Sub
Quando executo o código acima, ele mostra o erro de divisão, ou seja, Incompatibilidade de tipo (o valor numérico não pode ser dividido por texto).
Agora, você pode salvar sua pasta de trabalho como uma "pasta de trabalho habilitada para macro do Excel". Ao clicar em salvar como no canto esquerdo da planilha.
Quando você abrir esse arquivo do Excel novamente, poderá usar a tecla de atalho abaixo mencionada, ou seja,
A tecla de atalho Function + Alt + F11 ajuda você a acessar todo o código de macro criado da pasta de trabalho. A tecla de atalho Function + Alt + F8 ajuda você a abrir uma janela da caixa de diálogo “Macro”, que contém todos os nomes de macro, onde você pode executar um código de macro específico de sua escolha.
Coisas para lembrar
- O erro no tempo de execução será capturado silenciosamente e armazenado no objeto Err global
- Em Reiniciar com erro Em seguida, geralmente evita uma interrupção na execução do código.
- As propriedades do objeto de erro (Err Object) são limpas automaticamente quando o Reiniciar Próximo é usado em uma rotina de tratamento de erros
Artigos recomendados
Este é um guia para o VBA On Error Resume Next. Aqui discutimos diferentes tipos de erro no VBA Excel, além de alguns exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -
- Guia completo para macros VBA
- DateDiff do VBA (exemplos com modelo do Excel)
- Como usar a busca de meta no VBA?
- Folha de proteção do VBA com sintaxe
- Ambiente VBA