VBA – Em Caso de Erro, Sair da Sub

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 14, 2023

No VBA, você pode programar seu código para sair de uma Sub sempre que um erro for encontrado. Para fazer isso, use On Error GoTo e Exit Sub.

On Error Goto diz ao VBA que, quando um erro for encontrado, ele deve “ir para” uma seção específica do seu código. Ex:

On Error GoTo GerenciadorDeErros

Dentro dessa seção, você pode dizer ao VBA para para sair do subprocedimento:

GerenciadorDeErros:
Exit Sub

Continue lendo para ver essas linhas de código em ação…

Sair de um Subprocedimento em Caso de Erro no VBA

Neste exemplo, geraremos um erro ao dividir por zero:

i = 5 / 0

Veja o código completo abaixo. Quando o VBA ler o erro, ele “irá” para a seção GerenciadorDeErros do código e sairá:

Sub TesteErro ()
Dim i As Integer

On Error GoTo GerenciadorDeErros

i = 5 / 0

'Fazer algo com i
MsgBox i

Exit Sub
GerenciadorDeErros:
    MsgBox "Em caso de erro, sair da Sub"
    Exit Sub
End Sub

Para especificar o tratamento de erros, primeiro você precisa declarar a instrução On Error GoTo. Ela deve ser declarada no início de uma Sub:

On Error GoTo GerenciadorDeErros

Depois disso, você precisa declarar o código de tratamento de erros. Geralmente, ele fica no final do código:

GerenciadorDeErros:
    MsgBox "Em caso de erro, sair da Sub"
    Exit Sub

Adicionamos o “Exit Sub” acima do GerenciadorDeErros porque só queremos executar o código GerenciadorDeErros se houver um erro.

Exit Sub
GerenciadorDeErros:
    MsgBox "Em caso de erro, sair da Sub"
    Exit Sub
End Sub

Se você executar a Sub, ela apresentará um erro devido à divisão por zero. Nesse momento, o código de tratamento de erros será executado. A caixa de mensagem é exibida e a Sub é encerrada.

caso erro sair

Se você quiser saber como encerrar a execução de código no VBA, clique neste link: Finalização do VBA

Se você quiser saber como sair de uma subfunção ou função, clique neste link: VBA Exit Sub or Function (Sair de sub ou função)

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA