从另一个工作簿

时间:2017-01-20 16:56:45

标签: excel vba excel-vba

我正在尝试在 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不起作用。

知道出了什么问题吗?或者我怎样才能以更好的方式做到这一点?

2 个答案:

答案 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"