Como usar a função Erro no VBA?

No VBA (Visual Basic for Applications), a função `Erro` não existe especificamente, mas você pode lidar com erros de maneira eficaz utilizando a estrutura de tratamento de erros. Uma das abordagens mais comuns para tratar erros em VBA é usando o bloco `On Error`. Vou explicar como você pode usar essa estrutura para gerenciar erros no seu código.

Utilizando `On Error` para Tratamento de Erros

   Sub ExemplosDeErro()
       On Error Resume Next
       Dim num As Integer
       num = 1 / 0 ' Isso causará um erro de divisão por zero
       ' O código continuará a ser executado, mas num será indefinido
       If Err.Number <> 0 Then
           MsgBox "Ocorreu um erro: " & Err.Description
           Err.Clear ' Limpa o erro após o tratamento
       End If
   End Sub
   Sub TratamentoComGoTo()
       On Error GoTo TratarErro
       Dim num As Integer
       num = 1 / 0 ' Isso causará um erro de divisão por zero
       Exit Sub ' Certifica-se de sair antes de passar pelo rótulo de erro

   TratarErro:
       MsgBox "Erro detectado: " & Err.Description
       Err.Clear ' Limpa o erro
   End Sub
   Sub DesativarTratamento()
       On Error GoTo TratarErro
       Dim num As Integer
       num = 1 / 0
       
       Exit Sub

   TratarErro:
       MsgBox "Erro detectado: " & Err.Description
       On Error GoTo 0 ' Desativa o tratamento de erro
       num = 1 ' Continua a execução sem erro
   End Sub
  • On Error Resume Next: Ignora o erro e continua a execução do próximo comando. Isso pode ser útil quando você espera que alguns erros ocorram ocasionalmente e não queira que o programa pare devido a eles.
  • On Error GoTo: Redireciona para um rótulo específico onde o erro é tratado.
  • On Error GoTo 0: Desativa qualquer tratamento de erro no procedimento atual.

Atributos Úteis do Objeto `Err`

  • Err.Number: Retorna o número do erro.
  • Err.Description: Retorna uma descrição do erro.
  • Err.Clear: Limpa o erro atual.

É importante sempre limpar o erro (`Err.Clear`) após tratá-lo, especialmente se você continuar a execução do código. Isso ajuda a evitar ambiguidades na detecção de erros no restante do seu código.

Essas são as formas gerais de gerenciamento de erros em VBA. Utilize-as conforme a necessidade do seu projeto para capturar e responder a erros de forma eficaz.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project