Fix Excel VBA Error 400

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Last updated on February 5, 2022

This article will demonstrate how to fix Excel VBA Error 400.

Error 400 occurs while a VBA macro is running, usually causing the macro to crash and stop running. It is a very annoying error that can be quite difficult to resolve but by following the methods below you can hopefully solve your problem!

Ensure that VBA Projects are Trusted

First, that your VBA Projects are trusted.   To ensure that they are, follow these steps:

In the Ribbon, select File > Options and then (1) select Trust Center and (2) Trust Center Settings.

vba error 400 excel-options


In the Ribbon, select Developer > Macro Security.


vba error macro security


Note: If you don’t see the Developer Ribbon, you’ll need to enable it.

Then,  select (1) Macro Settings. Ensure that (2) Trust access to the VBA project object model is checked and then (3) click OK.

vba error 400 trust center


Transfer Your Code to a New Module

If you still encounter the error, the issue might be a corrupt code module.

To ensure that the code module is not corrupt, transfer your code to a new module and then delete the old module.

1) To insert a new module, we need to open the Visual Basic Editor (VBE).

In the Ribbon, select Developer > Visual Basic.


vba error VBE

Or Press Alt+F11 to switch to the VBE.


2) Make sure you have the correct VBA Project selected and then, in the Menu, select Insert > Module.


vba-error 400 menu insert module


3) Click in the original module and press CTRL + A on they keyboard to select all the code. Then copy the code (CTRL + C or right-click and select COPY)


vba error 400 copy code


4) Click in your new module and Paste the copied code into this module (CTRL + V).

5) Then right-click on your original module (in this case Module1), and select Remove Module1 to remove it from your VBA project.

vba-error 400 remove module

Or in the Menu, select File > Remove Module1.

6) Save your workbook to keep your changes.

Debug and Review the VBA Code

An Error 400 could also occur due to incorrect VBA code. The VBA Editor contains a variety of debugging tools. A powerful one is the ability to step through your code.

Click in the procedure that you wish to debug and then, in the Menu, select Debug > Step Into  OR press F8 on the keyboard.


vba error 400 debug

The procedure name will then be highlighted in yellow indicating that you are now in Debug mode.

vba error 400 debug mode

You can then go through your code line by line by pressing F8 each time to move down to the next line.

By debugging your code in this manner, you can check that it all runs correctly and does not raise the error 400

Repair or Reinstall Microsoft Office

If all of the above suggestions do not help, you may unfortunately have to repair or reinstall Microsoft Office as you may have a corrupt installation or corrupt registry entry.

First, try repairing the installed version of Office.

In the Settings App in your PC, select Apps > Apps and Features and then scroll down the list until your find your installation of Microsoft Office.

Click on the Modify button, select Online Repair or Quick Repair and then click Repair.

Re-boot your PC and try your macro again.

If this does not help, you may have to remove Microsoft Office from your machine by uninstalling it and then re-install it.

Check Your System for Malware or Viruses

Finally, do make sure that your system is checked for both Malware and Viruses as these can also lead to this Error 400.


VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as

Learn More!

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples