Macro Troubleshooting Guide

Macros not working? Start here. These are the most common issues tax professionals run into — and exactly how to fix them.

Quick Check — Try These First

  1. Did you save the workbook as .xlsm (macro-enabled)?
  2. Is the Developer tab visible? (File → Options → Customize Ribbon)
  3. Did you enable macros when the security warning appeared?
  4. Is the macro pasted into a Module, not a Sheet object?
  5. Do your sheet names and column letters match the Prerequisites section of the post?

Developer tab is missing

File → Options → Customize Ribbon → check "Developer" in the right column → OK.

This is a one-time setup. The Developer tab stays visible until you uncheck it.

Macro is blocked / security warning won't go away

File → Options → Trust Center → Trust Center Settings → Macro Settings → select "Enable all macros" (temporarily).

Note: Only enable all macros for workbooks you trust. After running the macro, switch back to 'Disable all macros with notification.' You can also add your macro folder as a Trusted Location for permanent access.

Runtime error 9: "Subscript out of range"

This means the macro is trying to reference a sheet that doesn't exist. Check the sheet name in the VBA code — is it spelled exactly right? Are there extra spaces?

Sheet names are case-sensitive in VBA when referenced by `Worksheets("Name")`. If your sheet is named "Sched-A " (with a trailing space), the code won't find it.

Runtime error 1004: "Application-defined or object-defined error"

The most common cause: the macro is trying to select a range or sheet that's protected, hidden, or on a different workbook. Add `ws.Activate` before `ws.Range(...).Select`. Better yet, avoid `.Select` entirely — work directly with range objects.

Every macro on this site avoids `.Select` and `.Activate` for this exact reason. If you're writing your own macros, use `Set rng = ws.Range("A1:B10")` instead of `Range("A1:B10").Select`.

Macro runs but does nothing (no errors, no results)

Check that your data matches what the macro expects. Common causes: data doesn't start in A1, blank rows between data, totals aren't in the last row/column, or column letters don't match what the code expects.

Read the Prerequisites section of each blog post — it lists exactly what the macro assumes about your workbook layout.

Macro is very slow (takes more than a few seconds)

Add `Application.ScreenUpdating = False` at the top and `Application.ScreenUpdating = True` at the bottom. This stops Excel from redrawing the screen after every change — often 10-50x faster.

For very large workpapers, also add `Application.Calculation = xlCalculationManual` at the top and `xlCalculationAutomatic` at the end. All macros on this site include these optimizations by default.

Can't find the macro after pasting it

In the VBA editor (Alt+F11), make sure you pasted into a Module (Insert → Module), not directly into a Sheet object or ThisWorkbook. Macros in Sheet objects only work for events on that sheet.

Also check: is the macro `Public` or `Private`? Private subs won't appear in the Macro dialog (Alt+F8). All macros on this site are Public.

Macro only works on the active sheet, not all sheets

Look for `ActiveSheet` in the code. If the macro uses `ActiveSheet`, it only runs on whichever sheet you're currently viewing. To process all sheets, the code needs a `For Each ws In ThisWorkbook.Worksheets` loop.

Posts that work across multiple sheets will say so in the title or description. If a post says "single-sheet macro," it's designed to run on one sheet at a time.

Still stuck? Reach out with the error message, your Excel version, and a description of what you tried. I answer every email.