首页 > 解决方案 > 如何运行另一个工作簿的宏?

问题描述

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

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

标签: excelvba

解决方案


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

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

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

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

推荐阅读