如何运行另一个工作簿的宏?

时间:2021-01-22 08:45:32

标签: excel vba

我正在工作簿 1 中编写一些代码以在工作簿 2 中打开和运行宏。 Workbook_Name 是带有“.xlsm”的 workbook2 的名称。我在workbook1中应用了以下代码,希望在workbook2中运行宏“Sheet8.Compute”。但它不起作用。请协助。

ActiveSheet.Application.run "'" & Workbook_Name & "'!Sheet8.Compute"

1 个答案:

答案 0 :(得分:0)

问题是您的 Sub Compute 存储在工作表的工作表代码中(至少您的代码行表明了这一点)。在这种情况下,您需要在没有工作表名称的情况下调用它:

 Application.run "'" & Workbook_Name & "'!Compute"

但是,将事件例程以外的代码放入模块中是一种很好的做法。在这种情况下,您可以使用或不使用模块名称调用例程。假设模块名称为 Module1,您可以同时使用:

 Application.run "'" & Workbook_Name & "'!Compute"
 Application.run "'" & Workbook_Name & "'!Module1.Compute"