我有三个宏放在excel表的表2中。我想在excel表关闭时运行宏。我使用了以下代码,
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Macro1
Macro2
Macro3
End Sub
其中Macro1,Macro2和Macro3是sheet2中的宏。此代码放在Excel工作表的ThisWorkBook部分中。当我执行此操作时,我收到错误,
Compile Error:
Sub or Function not defined
假设sheet2具有名称" Nameofsheet2" ,任何人都可以帮我解决这个问题吗?我希望每当excel表关闭时,sheet2中的宏都会运行。
由于
答案 0 :(得分:1)
将宏代码放在模块上,它可能会起作用。
答案 1 :(得分:1)
最简单的方法就是这样称呼它们:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SheetX.Macro1
SheetX.Macro2
SheetX.Macro3
End Sub
其中SheetX
是Sheet2的内部代码名称(这是您在VBA IDE的项目窗口中看到的名称,它可能与Excel工作表标签中显示的名称不同)
答案 2 :(得分:0)
如果要从不是当前工作簿的工作簿中调用宏,只需使用Application.Run "Personal.xlsb!clearImmediateWindow"
,
即。 Sheet2.MacroName
如果它存储在另一张表中,请使用More?
。