我正在尝试在 WorkbookB 中编写 macroB ,这会打开另一个 WorkbookA 并在sheet1中运行 macroA 。
我用Google搜索并找到了两种方法:
使用Application.Run
Dim i As Integer, en As Integer
en = Range("B4")
Application.Run "C\Mtest\WorkbookA.xlsb !macroA"
但我得到错误1004:此表中不存在宏剂量或宏已停用
使用RunAutoMacros
Workbooks.Open "C\Mtest\WorkbookA.xlsb"
Workbooks("WorkbookA.xlsb").Worksheets("sheet1").Activate
ActiveWorkbook.RunAutoMacros macroA
在这里我得到错误:1004方法RunAutoMacros不起作用。
知道出了什么问题吗?或者我怎样才能以更好的方式做到这一点?
答案 0 :(得分:3)
假设您的macroA
位于工作簿sheet1
的{{1}}的代码模块中,您应该使用
C\Mtest\WorkbookA.xlsb
答案 1 :(得分:2)
我认为空间是问题所在。尝试删除它。即 - 改变这一行
Application.Run "C\Mtest\WorkbookA.xlsb !macroA"
到
Application.Run "C\Mtest\WorkbookA.xlsb!macroA"