如何在不打开此宏的源代码的情况下在另一个工作簿中使用宏

时间:2017-10-07 14:29:30

标签: excel vba excel-vba

我在特定工作表中开发了一个宏(例如:工作表1),但我想在另一个工作表(工作表2)中运行此宏,而不必打开源代码(工作表1)。

有什么办法可以打电话吗?

此致

2 个答案:

答案 0 :(得分:1)

您无法运行位于已关闭工作簿中的VBA代码。但是,您仍然可以从当前打开的其他工作簿运行代码。您可以在当前工作簿中使用VBA代码,该代码可以自动打开其他工作簿,运行代码,然后关闭工作簿。

所以要打开工作簿,Workbooks.Open。要在该工作簿中运行宏,您需要使用Application.Run "FileName.xlsm!YourMacroNameHere"

从其他工作簿运行代码时,您需要注意一件事。如果代码仅引用该工作簿,那么您的代码将不会在新工作簿中进行更改。

示例:

如果您使用的代码表示诸如Set Ws = ThisWorkbook.Worksheets()之类的内容,则引用Ws的任何内容都不会更新调用它的书籍(因此,它不会使用代码{{ 1}})

答案 1 :(得分:0)

虽然批准的答案是正确的,但也有“个人宏工作簿”这样的东西。尝试录制新宏时,您可以在“将宏存储在”对话框中找到此工作簿。此工作簿适用于您的所有工作簿,无需打开即可运行宏。

Personal macro workbook screenshot