macros在closures期间运行时报错 – Sub或Function not defined

我有三个macros被放置在Excel表单2中。 我想在excel工作表closures时运行macros。 我用下面的代码,

Private Sub Workbook_BeforeClose(Cancel As Boolean) Macro1 Macro2 Macro3 End Sub 

Macro1,Macro2和Macro3是sheet2中的macros。 这段代码放在Excel工作表的ThisWorkBook部分。 当我执行这个我得到一个错误,

 Compile Error: Sub or Function not defined 

假设sheet2的名字是“Nameofsheet2”,有人可以帮我解决这个问题吗? 我希望sheet2中的macros在excel表closures时运行。

谢谢

把你的macros代码放在一个模块上,它可能会工作。

最简单的方法就是像这样称呼他们:

 Private Sub Workbook_BeforeClose(Cancel As Boolean) SheetX.Macro1 SheetX.Macro2 SheetX.Macro3 End Sub 

其中SheetX是Sheet2的内部代码名称(这是您在VBA IDE的“项目”窗口中看到的名称,可能与Excel工作表选项卡中显示的名称不同)

如果要从不是当前工作簿的macros调用macros,只需使用Application.Run [workbook]!MacroName

Application.Run "Personal.xlsb!clearImmediateWindow"

如果它存储在另一个工作表中,请使用Sheet2.MacroName