Andrew Abbott
Andrew Abbott

Reputation: 437

Cannot run the macro. The macro may not be availabe in this workbook

Having an issue with VBA error 'run time 1004'. Using the following code. The macro is called from a button in Row 5, hence the subtraction. There are other buttons in rows 6, 7, 8 etc. all calling the same macro (to subsequently call a specific userform), hence the variable.

Sub Export()
    i = RowNumber - 4

    Reinstated = "ReinstateR" & i

    Application.Run Reinstated

End Sub

The macros 'ReinstateR1', 'ReinstateR2' etc. are all stored in a separate module.

Sub ReinstateR1()

'Macro function etc.

End Sub

For some reason, though, when I click the button, I get the following error message:

"Cannot run the macro 'ReinstateR1'. The macro may not be available in this workbook or all macros may be disabled."

All macros are enabled, the macro is in the same workbook, etc. Trust centre settings are set to disable all macros with notification, etc.

I'm stumped. I can call the macro without the variable, but that's not the point...

Upvotes: 0

Views: 3804

Answers (1)

Rory
Rory

Reputation: 34065

If you have a module with the same name as a routine it contains, you need to prefix any call to it using Application.Run with the module name as well (or change the name of either the module or the routine), so in this case it's:

Application.Run "Reinstater1." & Reinstated

Upvotes: 1

Related Questions