No VBA, você pode programar seu código para sair de um Sub sempre que um erro for encontrado. Para fazer isso, use On Error GoTo e Sair do Sub.
On Error Goto diz ao VBA que, quando um erro for encontrado, “Go To” uma seção específica de seu código. Ex:
1 | On Error GoTo ErrorHandler |
De dentro dessa seção, você pode dizer ao VBA para sair do Sub para sair do procedimento de sub:
12 | ErrorHandler:Sair do Sub |
Continue lendo para ver essas linhas de código em ação …
Sair de um Sub em caso de erro no VBA
Neste exemplo, geraremos um erro dividindo por zero:
1 | i = 5/0 |
Veja o código completo abaixo. Quando o VBA lê o erro, ele "vai" para a seção de código ErrorHandler e sai:
123456789101112131415 | Sub TestError ()Dim i As IntegerOn Error GoTo ErrorHandleri = 5/0'Faça algo com euMsgBox iSair do SubErrorHandler:MsgBox "Se houver erro, saia do Sub"Sair do SubEnd Sub |
Para especificar o tratamento de erros, você primeiro precisa declarar On Error GoTo demonstração. Deve ser declarado no início de um Sub:
1 | On Error GoTo ErrorHandler |
Depois disso, você precisa declarar o código de tratamento de erros. Geralmente está no final do código:
123 | ErrorHandler:MsgBox "Se houver erro, saia do Sub"Sair do Sub |
Adicionamos o "Exit Sub" acima do ErrorHandler porque só queremos executar o código ErrorHandler se houver um erro.
12345 | Sair do SubErrorHandler:MsgBox "Se houver erro, saia do Sub"Sair do SubEnd Sub |
Se você executar o Sub, ocorrerá um erro devido à divisão por zero. Nesse momento, o código de tratamento de erros será executado. A caixa de mensagem aparece e o Sub é encerrado.
Imagem 1. VBA On Error Exit Sub
Se você quiser aprender como encerrar a execução de código no VBA, clique neste link: Fim do VBA
Se você quiser aprender como sair de uma Sub ou Função, clique neste link: VBA Sair da Sub ou Função