Excel加载项检测名称工作表是否存在,如果是的话运行Marco

通过我的插件我试图检测是一个名为工作表叫VaR存在,如果是这样运行一个macros。

在我的插件ThisWorksheet对象中,我已经包含了代码

Private Sub Workbook_Open() ActiveWorkbook.RefreshAll Application.Wait (Now + TimeValue("0:00:05")) Application.Run ("Macro") End Sub 

它不工作,因为我打开一个电子表格,我知道我正在寻找工作表,例如“VAR”不会加载之前加载,所以没有find它。

这个行动是可能的吗? 我只想要打开包含名为“VaR”的工作表的工作簿的用户触发事件。

亲切的问候。

创build一个类来处理打开工作簿时的事件,并检查该工作簿中的工作表:

类模块(将模块重命名为“xlApp”):

 Private WithEvents xlApp As Excel.Application Private Sub Class_Initialize() Set xlApp = Application End Sub Private Sub xlApp_WorkbookOpen(ByVal wb As Excel.Workbook) Dim ws As Excel.Worksheet For Each ws In wb.Sheets If ws.Name = "VaR" Then '// amend as required Call SomeMacro '// amend as required End If Next End Sub 

在加载项中的Workbook_Open事件中:

 Private Sub Workbook_Open() Dim XL As xlApp Set XL = New xlApp End Sub