On Error

It is used to handle errors that occur during run time.

This Statement can be used in four different ways:

  1. On Error GoTo 0: The code stops at the line where the error occurred and displays the message.
  2. On Error Resume Next: No error message is displayed, the code will move to the next line.
  3. On Error GoTo [Label]: The code moves to a specific line or label.  No error message is displayed. This can be used for error handling.
  4. On Error GoTo -1:Clears the current error.

On Error GoTo 0

This is the default behavior of VBA that if an error occurred it stops the execution of the code and displays the error message. For continuation of the code it requires user intervention or the user needs to start the application again. In this process, no error handling is taking place.

For Example:

This statement will show an error message that a number or a variable is divided by zero.

Division of numbers with zero is not possible. 

On Error Resume Next

 It tells VBA if it gets a run time error then don’t show the error message simply resume to the next statement. In simple language, it can be said that it tells VBA to ignore all the errors and continue.

Note: This is not considered to be good practice because if all the errors will be ignored then the result will be unpredictable. This can affect the code or application in multiple ways. 

 

On Error GoTo [label]

The above methods don’t truly allow us to handle the error but On Error, Goto [label] is the way with which the user can handle the error and it also specifies what you want to do with the code if an error occurs.

  • It is similar to try and catch functionality as in other programming languages such as c and c#. If it gets an error then it will go to the specific statement which we will mention in the “label” part.

On ErrorGoTo[label]

On Error Goto -1

This is used to clear the current error rather than setting a particular behavior.

Note: On Error GoTo -1 is useful in rare cases. In most cases using Resume Next is a better option as it clears the error and resumes the code the next time after the error occurs.

For example:

 

VBA Error Handling

In a VBA code, there may be some errors like syntax errors, compilation errors, or runtime errors so we need to handle these errors. Suppose there is a code of 200 lines and the code has an error it’s very difficult to find an error in the code of 200 lines so it’s better to handle the error where we are expecting some error in our code. There are many error handling methods in VBA which we will discuss in this article but before that, we will discuss types of error.

Similar Reads

What is VBA Error handling?

VBA Error handling is the process of Anticipating, detecting, and writing code to resolve the error that occurs when your application is running. The VBA Error handling process occurs when writing a code before any error occurs. Before moving to VBA Error handling first you need to know about the types of VBA Errors....

Types of VBA Errors

Syntax Error Compilation Error Run time Error Logical Error...

Syntax Error

Syntax errors are also called language errors, There are some particular syntaxes for writing any code, In VBA also user needs to follow a particular syntax, and if the user doesn’t write the syntax in the proper way it should be, then the user can face syntax errors....

VBA Error Handling

VBA Error Handling refers to the process of anticipating, detecting, and resolving VBA Runtime Errors. The VBA Error Handling process occurs when writing code before any errors actually occur....

VBA On Error Statement

The VBA on error statements is used for error handling. This statement performs some action when an error occurs during run time. Without an Error statement, any run-time error that occurs is misfortunate. Execution stops abruptly with an error message....

On Error

It is used to handle errors that occur during run time....

The Err Object

When an error occurs an Error object is created with the help of that we can get details about the Error that is the type of error and error number....

VBA IsError

VBA IsError is another method to handle error statements by testing for them. If an error occurs it returns a True or False value after testing an Expression for errors....

IfError VBA

Users can handle errors in VBA using the Excel IfError function....

Conclusion

This article will help you to understand the concept of VBA Error Handling. Also, you can go through the different types of errors such as Syntax errors, compilation errors, Run time errors, and Logical errors. And What is the role of VBA Error Handling with different types of On Error Statement for example On Error Goto 0, On Error Resume Next, On Error GoTo [Label], and On Error GoTo -1. There are some more functions to handle the errors such as VBA IsError and IfError VBA. You can also learn some other important terms such as Err Object(which includes Er1 Function, Err.Raise, Err.Clear, Error Function), VBA Error Handling in a loop, and VBA Error Trapping....

FAQs on VBA Error Handling

What if Auto check syntax is disabled?...

Contact Us