4. On Error GoTo -1
Esse tipo é usado para redefinir o status de tratamento de erros que se aplica ao escopo do procedimento atual. Os erros que foram tratados anteriormente não afetarão mais o fluxo do programa.
Sub ExampleGoToMinusOne()
On Error GoTo ErrorHandler
Dim result As Double
result = 5 / 0 ' This causes an error
Exit Sub
ErrorHandler:
MsgBox "Error handled."
On Error GoTo -1 ' Clears previous error status
' If the error occurs again, handling must be reset
End Sub
Com On Error GoTo -1, o tratamento de erros anterior será removido, para que você possa configurar um novo tratamento, se necessário.
5. Nested Error Handling
Você pode usar vários níveis de tratamento de erros de maneira aninhada. Isso permite que você lide com diferentes tipos de erros separadamente.
Private Sub CommandButton4_Click()
Dim firstNum, secondNum As Double
On Error GoTo error_handler1
firstNum = InputBox("Enter the first number")
On Error GoTo error_handler2
secondNum = InputBox("Enter the second number")
MsgBox firstNum / secondNum
Exit Sub
error_handler2:
MsgBox "Error! You tried to divide a number by zero! Try again!"
Exit Sub
error_handler1:
MsgBox "You did not enter a number! Try again!"
End Sub
6. Validação de entrada usando IsNumeric
Antes de executar uma operação aritmética, é possível validar a entrada usando a função IsNumeric para garantir que os dados entrados sejam numéricos.
Private Sub CommandButton5_Click()
Dim userInput As String
userInput = InputBox("Enter your age:")
If Not IsNumeric(userInput) Then
MsgBox "The input you entered is invalid. Please enter a number."
Exit Sub
End If
MsgBox "Your age is " & userInput & " years."
End Sub
Conclusão
O tratamento de erros é uma parte importante da programação no Excel VBA. Ao implementar vários tipos de tratamento de erros, os programadores podem criar aplicativos mais robustos e fáceis de usar, além de reduzir a probabilidade de travamentos devido a entradas inválidas.