vba - 从另一个工作簿在工作簿中运行 vba 宏

标签 vba excel

我正在尝试写一个 宏B 工作簿 B 这会打开另一个 工作簿A 并运行 宏A 在表 1 中。

我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 方法不起作用。

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

    最佳答案

    假设您的 macroAsheet1 的代码模块中工作簿 C\Mtest\WorkbookA.xlsb ,你应该使用

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

    关于vba - 从另一个工作簿在工作簿中运行 vba 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41768746/

    相关文章:

    vba - 在工作簿之间复制单元格

    vba - 免费文件标签

    java - 用java替换字符串中文本的最佳方法

    vba - 在 VBA 中 Rows 属性有一个奇怪的行为

    vba - 删除工作表中的所有内容

    VBA Do Until 循环有时会失败

    .net - 将 Excel 作为 OLE 对象嵌入 MS Word 中显示错误

    php - 使用服务器端脚本语言和 Excel(而不是 mySQL)驱动网站

    excel - Powershell 引用 vba 项目 > microsoft excel 对象 > 本工作簿

    vba - 如何从 Excel 2003 VBA 写入 "Google Spreadsheet"