How to fix "Run-time error 424 ‘Object required’" – VBA (Excel)

If you use Excel, you may encounter the error “Run-time error 424” with the message “Object required”.

This is a bug with VBA (Visual Basic for Applications), and it basically shows when you reference an object that does not exist or is out of current scope.

If you see the error as someone “developing” some automated macro / functionality in an Excel spreadsheet, the likely problem is that you are calling an object “out of context”. This means that an object may have been loaded, but its content could have been changed or replaced. There are also several other potential problems, fixes that I will explain in this tutorial …


The error you will see will have the following message:

Run-time error ‘424’

Object required

To explain why the error appears and what it means, Microsoft released its famous “Visual Basic” package in the late 1990s.

This provided basic capabilities with the system, allowing hobbyist developers to create simple applications. VB was a great success.

Because of this, Microsoft introduced “VBA” (Visual Basic for Applications) in its Office software package, namely Excel and Word. This allowed developers to create automated functions in Excel spreadsheets, referencing “objects” on the sheet itself, and so on.

Every time you use Visual Basic, what you are doing is invoking a series of “objects” in memory. These objects are simply variables with a number of additional functionalities applied, including custom functions, etc. The problem, and this extends to most programming languages, is that if you reference an object that has not been invoked, the application will crash.


If you want to fix the problem, you must first make sure that the data is present in the system and then that you can reference it correctly. This tutorial will explain how to:

1. Make sure you have defined the variables correctly

The main problem is that you have called a method on a variable (object) that does not exist. The most common reason for this is that you have simply misspelled the variable name and therefore not declared it in your VBA application. Take the following example:

Secondary test ()

Application33.WorksheetFunction.Sum (Range (“A1: A100”))

End Sub

The above will generate the error because you are trying to call the WorksheetFunction method on an object referenced in “Application33”.

Unfortunately, the Application33 object does not exist in memory, preventing your application from being able to load it. To fix this, you should review your source code (the wrong reference will almost always be referenced) and correct any misspelled object names.

two. If using Excel make sure there are ranges / selectors

One of the most common reasons for the error is that you are trying to reference an object or value that does not exist. This is a typical problem with using VLookup or one of the ActiveX objects. If you experience this error, you need to make sure that your code refers only to objects that exist:

Private subtest ()

This will generate an error

Application.WorksheetFunction.VLookup (TeamName, Range (“TeamNameLookup”), 3, False) .Value

The value must be

Application.WorksheetFunction.VLookup (TeamName, Sheets (“YourSheetName”). Range (“TeamNameLookup”), 3, False)

End Sub

The above means that you are trying to call the various worksheets and their respective “Range” / “Value” functions without the sheets being found or declared. To work around this, you need to make sure you are calling “Range” or “Value” on scoped objects respectively.

3. Make sure you have the correct definitions

Finally, one of the most common reasons for the error is that you are not defining your variables correctly.

From the incorrect definition of variables as incorrect object definitions, to the “Explicit Option” call, it can be the case that you are trying to reference variables / objects that are not defined simply because they are not defined correctly.

For instance …

Explicit option

Private subtest ()

Here you need to explicitly declare the variables before trying to reference / fill them

For instance …

Dim your_path as string

Set your_path = “x / y / z”

End Sub

In the example above, if the variable “your_path” is not declared before trying to set it, you will end up with error 424 (since the object “your_path” does not exist). From here you also need to make sure you can call the relevant objects (if you are referencing a worksheet value, you need to make sure the worksheet exists and can be loaded).

Obviously, there are other instances of this error. Because the specific nature of each person’s code is different, I cannot analyze all the potentialities. Hopefully, you can see that the error is due to an invalid variable reference on your system.

Leave a Reply

Your email address will not be published. Required fields are marked *