如何在不打开此macros的源代码的情况下在其他工作簿中使用macros

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

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

问候,

您不能运行封闭的工作簿中的VBA代码。 但是,您仍然可以从当前打开的其他工作簿运行代码。 您可以在当前工作簿中使用VBA代码,该代码可以自动打开其他工作簿,运行代码,然后closures工作簿。

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

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

例:

如果你正在使用的代码说的是Set Ws = ThisWorkbook.Worksheets()这样的东西,那么任何引用Ws东西都不会更新调用它的书(因此,它不会引用书中的代码Application.Run