【发布时间】:2017-03-09 22:49:48
【问题描述】:
遇到 VBA 错误“运行时 1004”问题。使用以下代码。宏是从第 5 行中的按钮调用的,因此是减法。第 6、7、8 行等中还有其他按钮,它们都调用相同的宏(随后调用特定的用户窗体),因此是变量。
Sub Export()
i = RowNumber - 4
Reinstated = "ReinstateR" & i
Application.Run Reinstated
End Sub
“ReinstateR1”、“ReinstateR2”等宏都存储在单独的模块中。
Sub ReinstateR1()
'Macro function etc.
End Sub
但是,由于某种原因,当我单击按钮时,我收到以下错误消息:
“无法运行宏 'ReinstateR1'。此工作簿中可能没有该宏,或者所有宏都可能被禁用。”
所有宏都已启用,宏在同一个工作簿中等。信任中心设置设置为禁用所有带有通知的宏等。
我被难住了。我可以在没有变量的情况下调用宏,但这不是重点......
【问题讨论】:
-
宏所在的模块名称是什么?
-
Export 宏位于名为“Exporter”的模块中,而 ReinstateR# 宏位于名为“Reinstater1”的模块中。
-
你的问题。尝试运行 Reinstater1 将失败,因为模块和例程具有相同的名称。您要么需要添加模块名称:
Application.Run "Renstater1." & Reinstated,要么最好为例程赋予模块不同的名称。 -
我从来没有想过这个问题,感谢您指出。
-
@Rory 这应该是一个答案......