Tratamento de Erros - VBA
Embora seja tomado todo cuidado para evitar erros durante a execução dos códigos, acabamos sempre nos deparando com alguns erros.
O VBA, assim como outras linguagens de programação, possuem recursos que permitem identificar os erros e controlar o fluxo de execução do código.
Tipos de Erros
No tempo da compilação: caracterizados por falhas na sintaxe (falta de aspas, parênteses, pontos, vírgulas, etc).
No tempo da execução: ocasionados pelas tentativas de executar uma operação inválida, por exemplo, uma referência a um arquivo excluído ou inexistente.
Erros lógicos: quando resultados incorretos são produzidos pelo aplicativo.
Respostas aos erros
Todo procedimento que provoca um erro inclui uma instrução On Error. A instrução On Error ativa uma rotina de tratamento de erros e especifica o local da rotina dentro de um procedimento; também pode ser usado para desativar uma rotina de tratamento de erros.
Em uma rotina, quando o erro ocorrido é identificado, uma mensagem é exibida ao usuário.
Instrução/Definição
On Error GoTo Linha - Em caso de erro, vá para a linha que ativará a rotina de gerenciamento de erros.
On Error Resume Next - Especifica que, quando ocorre um erro de tempo de execução, controle vai para a declaração imediatamente seguinte a instrução em que ocorreu o erro e continua de execução a partir desse ponto.
On Error GoTo 0 - Desativa o tratamento de erros ativado no procedimento atual.
Para sair, é preciso dar os comandos Resume ou Exit, sendo que o primeiro retorna o controle do programa para o procedimento principal e o segundo sai do procedimento.
Observe algumas sintaxes de tratamento de erros.
Saindo do Procedimento:
Sub exemplo( )
On Error GoToTrataErro
Instrução…
TrataErro:
Exit Sub
End Sub
Sai do Procedimento e exibe a descrição do erro:
Private Sub cmdok_Click()
On Error GoTo cmdok_Click_Err
Instruções…
cmdok_Click_Fim:
Exit Sub
cmdok_Click_Err:
MsgBox "Erro n. " & Err.Number & " - " & Err.Description
Resume cmdok_Click_Fim
End Sub
Gostou? Se quiser mais eu tenho um e-Book sobre VBA que você pode se interessar.
Confira aqui