Excel Addin检测是否存在命名工作表,如果存在则运行Marco

时间:2015-11-18 16:54:29

标签: excel vba excel-vba events worksheet

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

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

Private Sub Workbook_Open()

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

End Sub

它无法正常打开电子表格,我知道该电子表格中包含我正在寻找的工作表,例如“VAR”不会在插件之前加载,因此找不到它。

这个动作是否可行。我只希望为打开包含名为“VaR”的工作表的工作簿的用户触发该事件。

亲切的问候。

1 个答案:

答案 0 :(得分:0)

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

课程模块(将模块重命名为" 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