Vba: como sair do sub em caso de erro
Você pode usar a instrução Exit Sub no VBA para sair de um subprocedimento quando um erro for encontrado.
Aqui está uma maneira comum de usar esta declaração na prática:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Esta macro específica tenta dividir cada valor no intervalo A1:A10 pelo valor correspondente no intervalo B1:B10 .
Se ocorrer um erro (por exemplo, estamos tentando dividir por zero), então a instrução On Error GoTo diz ao VBA para acessar ErrorMessage , que diz para produzir uma caixa de mensagem informando ao usuário que ocorreu um erro e encerrar o subprocedimento usando Exist Sub . declaração.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: Como existir um sub em caso de erro no VBA
Suponha que temos a seguinte lista de valores nas colunas A e B:
Agora suponha que criemos a seguinte macro para dividir cada valor na coluna A pelo valor correspondente na coluna B e exibir os resultados na coluna C:
Sub DivideValues()
Dim i As Integer
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
End Sub
Ao executarmos esta macro, recebemos o seguinte erro:
Estamos recebendo este erro porque na quarta linha da planilha Excel tentamos dividir por zero.
Se quisermos simplesmente sair do subprocedimento quando esse erro ocorrer, podemos usar a instrução Exit Sub da seguinte maneira:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Quando executamos esta macro, o subprocedimento resolve todos os possíveis problemas de divisão antes de encontrar um erro, então aparece uma caixa de mensagem que nos informa que ocorreu um erro e o VBA simplesmente existe no subprocedimento:
Nota : Você pode encontrar a documentação completa da instrução Exit em VBA aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
Como criar pastas usando VBA
Como deletar pastas usando VBA
Como excluir arquivos usando VBA