Dicas infalíveis para lidar com erros na programação VBA do Excel

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.

Últimos artigos