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

Excel Addin Detecting if named worksheet exists and if so run Marco

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

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

Private Sub Workbook_Open()

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

End Sub

打开我知道有我正在寻找的工作表的电子表格时,它不起作用,例如"VAR" 未在加载项之前加载,因此未找到。

这个动作可以吗。我只希望为打开包含名为 "VaR".

的工作表的工作簿的用户触发事件

亲切的问候。

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

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