O tratamento de erros é um aspecto vital da programação VBA do Excel, especialmente quando os usuários inserem valores inválidos em uma planilha. Aqui está um guia sobre como lidar com erros frequentes no Excel VBA.
O tratamento de erros não apenas evita que o programa trave devido à entrada incorreta, mas também:
- Fornecer feedback claro aos usuários sobre os erros que ocorrem
- Facilite a manutenção e a solução de problemas de código
Ao lidar bem com os erros, os programadores podem garantir que o programa funcione sem problemas e que os usuários tenham uma experiência melhor.

No mundo da programação VBA do Excel, os erros podem aparecer sempre que um usuário insere um valor inválido em uma planilha. Esses erros, se não forem tratados corretamente, podem fazer com que o programa pare ou dê resultados indesejados.
Neste artigo, Bardimin discutirá vários métodos para identificar e corrigir erros comuns no Excel VBA, além de oferecer soluções práticas para manter o programa funcionando sem problemas, apesar das interrupções.
Tipos de erros e como escrever erros Manipulando código
O tratamento de erros no Excel VBA é essencial para garantir que o programa seja executado corretamente e forneça uma experiência positiva ao usuário. Aqui estão alguns tipos comuns de tratamento de erros usados no Excel VBA:
1. On Error GoTo
Esse tipo de tratamento de erros é usado para direcionar um programa para uma parte específica do código quando ocorre um erro. Uma vez detectado, o fluxo do programa será movido para um rótulo específico que foi definido para lidar com o erro.
Private Sub CommandButton1_Click()
On Error GoTo err_handler
num1 = InputBox("Enter the first number")
num2 = InputBox("Enter the second number")
MsgBox num1 / num2
Exit Sub
err_handler:
MsgBox "Invalid division, please try again"
End Sub
Neste exemplo, se ocorrer um erro (por exemplo, divisão por zero), o programa pulará para o rótulo err_handler e exibirá uma mensagem de erro.
2. On Error Resume Next
Com On Error Resume Next, o programa ignorará o erro e continuará executando o código na próxima linha. Isso é útil para erros não críticos que não exigem tratamento especial.
Private Sub CommandButton2_Click()
On Error Resume Next
num1 = InputBox("Enter the first number")
num2 = InputBox("Enter the second number")
MsgBox num1 / num2
End Sub
Aqui, mesmo que haja uma divisão por zero, o programa não será interrompido e a execução continuará para a próxima linha.
O uso de Resume Next deve ser feito com cautela, pois pode ocultar erros importantes.
3. On Error GoTo 0
Em caso de erro, GoTo 0 é usado para desabilitar o tratamento de erros que foi habilitado anteriormente. Depois de usar este comando, se houver um erro na próxima linha, o programa irá parar e exibir uma mensagem de erro padrão.
Sub ExampleGoToZero()
On Error Resume Next ' Ignore errors
Dim result As Double
result = 5 / 0 ' Errors are ignored
On Error GoTo 0 ' Disable error handling
MsgBox result
result = 5 / 0 ' This will cause the program to terminate since errors are no longer ignored
End Sub
Depois de usar On Error GoTo 0, se ocorrer um erro, o programa será interrompido normalmente.