在另一个工作簿的工作簿中运行一个vbamacros

我正尝试在WorkbookB中编写一个macroB ,该macros打开另一个WorkbookA并在sheet1中运行macroA

我Googlesearch了两个方法:

  • 使用Application.Run

     Dim i As Integer, en As Integer en = Range("B4") Application.Run "C\Mtest\WorkbookA.xlsb !macroA" 

    但是我得到错误1004:或者macros剂量不存在于此工作表或macros被停用

  • 使用RunAutoMacros

     Workbooks.Open "C\Mtest\WorkbookA.xlsb" Workbooks("WorkbookA.xlsb").Worksheets("sheet1").Activate ActiveWorkbook.RunAutoMacros macroA 

    在这里,我得到的错误:1004方法RunAutoMacros不起作用。

任何想法是什么错误? 或者我怎样才能以更好的方式做到这一点?

假设您的macroA位于工作簿C\Mtest\WorkbookA.xlsb的工作表macroA的代码模块中,您应该使用

 Application.Run "'C\Mtest\WorkbookA.xlsb'!sheet1.macroA" 

我认为空间是问题。 尝试删除它。 即 – 改变这一行

 Application.Run "C\Mtest\WorkbookA.xlsb !macroA" 

 Application.Run "C\Mtest\WorkbookA.xlsb!macroA"