Got the VBA runtime error 1004? Fix it fast with these steps

Reading time icon 3 min. read


Readers help support Windows Report. When you make a purchase using links on our site, we may earn an affiliate commission. Tooltip Icon

Read the affiliate disclosure page to find out how can you help Windows Report effortlessly and without spending any money. Read more

Key notes

  • Encountering the VBA runtime error 1004 is not a good sign, but this article could prove helpful.
  • This error implies that you won't be able to use MS Excel normally, which can cause a variety of issues at work.
  • For more useful and detailed information, don't hesitate to visit our extensive Microsoft Excel Hub.
  • If you want to always be one step away from runtime errors, bookmark our useful Runtime Errors webpage.
excel-runtime-error-1004

If you work in an organization, you most probably have the latest version of the Microsoft Office suite or Office 365 installed on your PC.

Even if this one of the best spreadsheet tools in the market, this doesn’t make Microsoft Excel immune to occasional bugs. This would be the case with an error message users have been reporting: Run time error 1004. Application-defined or object-defined error.


How can I fix the VBA runtime error 1004?

1. Check your Excel add-ins

manage office add-ins

  1. Click File -> Options ->Select Add-ins
  2. Click the Go button
  3. Select the add-ins you want to disable or remove
  4. Uncheck the box in front of the respective add-in
  5. Click OK

2. Verify Excel or install the latest updates

  1. Right-click the Start button
  2. Select Apps and Features on the pop-up menu.
  3. Select the Microsoft Excel, and select Modify

Depending on whether your copy of Office is Click-to-run or MSI-based install, the next steps will vary a little.

Click-to-run

A window called How would you like to repair your Office Programs will appear

  1. Select Online Repair
  2. Choose Repair to make sure everything gets fixed
    • The Quick Repair option is faster but it only detects and then replaces corrupted files
      Microsoft Office Repair Windows 10

MSI-based

  1. In Change your installation, select Repair
  2. Click Continue
  3. Follow the given instruction to complete the process

3.  The named range doesn’t exist

The most common cause of a run-time Error 1004 is when VBA code refers to a named range that doesn’t exist. Maybe the name is spelled wrong in the code or maybe a valid name is used, but it is on an inactive worksheet. In this second case, the solution is to qualify the range reference with a worksheet (and perhaps the workbook).

  1. Worksheet Sheet1 is active, named range Foobar is on Sheet2
  2. Dim cel As Range
  3. Set cel = Range(“Foobar”) ‘Causes runtime error 1004
  4. Set cel = Worksheets(“Sheet2”).Range(“Foobar”) ‘This works

A less common cause of 1004 errors is when you use a named formula or constant in a Range statement. VBA complains because the named formula or constant returns a value rather than a range reference. The workaround is to use the evaluate method to get the value, such as by enclosing in square brackets:

  1. Dim MyVar As Double
  2. Dim cel As Range
  3. Set cel = Range(“SomeNamedConstant”) ‘Causes run-time error 1004
  4. MyVar = [SomeNamedConstant] ‘This works.
    Note the lack of double-quotes

4. Check the contents of the spreadsheet

  • Inserting a row or column
  • Performing calculations
  • Copy and pasting
  • Sorting
  • Opening or closing the workbook

If you are doing any of the actions mentioned above and you receive the error, check what exactly is wrong. If that is the case, try doing the following:

  • Recheck the formulas
  • Recheck the calculations
  • Avoid using excess shapes
  • Avoid using complex PivotTables
  • Try not to use macros and complex charts with many data points

In today’s guide, we explored the best solutions that you can try to fix the VBA runtime error 1004.

If you found this article helpful or you have any suggestions, get into contact with us by using the comment section below.

More about the topics: Runtime Errors