运行其他模块的VBA模块

osi*_*tra 9 excel vba call excel-vba

我正在使用Microsoft VBA进行编程.首先,我需要在宏的帮助下生成一个QueryTable(我已经得到了代码),然后在宏的帮助下,我需要应用使用QueryTable中数据的公式.我面临的问题是QueryTable只出现在其代码已经完成工作的Sub之后.这意味着我不能包含生成公式的代码,因为没有生成公式的数据.

现在的想法是编写一个运行其他模块的模块:

Sub moduleController()
    Run "Module1"
    Run "Module2"
End Sub
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

运行时错误1004 - 无法运行宏"macroname".宏可能在此工作簿中不可用,或者可能禁用所有宏.

可能是什么解决方案?也许我的QueryTable加载问题有另一种解决方案?

Jer*_*ire 17

只要有问题的宏位于同一工作簿中并验证名称是否存在,就可以按名称而不是按模块从任何其他模块调用这些宏.

因此,如果在Module1中有两个宏Macro1和Macro2,而在Module2中你有Macro3和Macro4,那么在另一个宏中你可以全部调用它们:

Sub MasterMacro()
    Call Macro1
    Call Macro2
    Call Macro3
    Call Macro4
End Sub
Run Code Online (Sandbox Code Playgroud)