我想知道是否有办法从另一个指定的工作簿模块调用VBA函数或方法,因为可以在不使用Application.Run的情况下对特定工作表进行调用.
对于我可以调用的工作表,例如:
ActiveSheet.MyTest()
Run Code Online (Sandbox Code Playgroud)
如果在工作表模块中定义了MyTest
但我想调用模块中定义的函数
我试过了 :
ActiveWorkbook.MyTestModule()
ActiveWorkbook.VBProject.VBComponents("MyModule").MyTestModule(myArg)
Run Code Online (Sandbox Code Playgroud)
哪些不起作用生成错误对象不支持此方法
我可以打电话
Application.Run(ActiveWorkbook.name & "!MyTestModule", myArg)
Run Code Online (Sandbox Code Playgroud)
但我不确定Application.Run的错误处理,我会发现直接运行该方法更干净
Bri*_*ire 22
在您要调用的工作簿中(我将其称为A),您可以添加对要调用的工作簿的引用(我将称之为B),如下所示:
在文件A中,您应该能够在文件B中调用公共模块级函数,就像它们在文件A中一样.要解决任何命名冲突,您可以通过"项目名称"为文件B添加前缀,如"项目属性"对话框的"常规"选项卡(可通过"Microsoft Visual Basic for Applications工具"菜单中的"属性"命令访问).例如,如果文件B的"项目名称"是"VBAProjectB",则可以使用语法VBAProjectB.F从文件A调用函数F.