• July 22, 2023

How to fix "Runtime error 424 ‘Object required’" -VBA (Excel)

If you are using Excel, you may encounter the “Runtime Error 424” error with the “Object Required” message.

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

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


The error you will see will have the following message:

Runtime error ‘424’

Object required

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

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) into its Office software suite, namely Excel and Word. This allowed developer types to create automated functions in Excel spreadsheets, referencing “objects” in the sheet itself, etc.

Every time you use Visual Basic, what you’re doing is calling a series of “objects” in memory. These objects are simply variables with a number of additional functions applied to them, including custom functions, etc. The problem, and this extends to most programming languages, is that if you’re referencing an object that hasn’t been called, the application will fail.


If you want to fix the problem, you must first ensure 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 he simply misspelled the variable name and therefore did not declare it in his VBA application. Take the following example:



finish sub

The above will raise 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, which prevents 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.

2. If using excel make sure ranges/selectors exist

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 the likes of using VLookup or one of the ActiveX objects. If you experience this error, you should ensure that your code references only 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)

finish 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 fix this, you need to make sure to call “Range” or “Value” on the objects with respective scope.

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 defining variables incorrectly to incorrect object definitions to calling “Option Explicit”, it may be the case that you try to reference variables/objects that are not defined simply because they have not been defined correctly.

For example…

explicit option

private subtest()

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

For example…

dim your_path as string

Set your_path = “x/y/z”

finish sub

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

Obviously, there are a number of other cases of this error. Because the specific nature of each person’s code is different, I can’t break down all the potentialities. Hopefully, you can see that the error is caused by an invalid variable reference on your system.

Leave a Reply

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