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
通过我的插件,我试图检测是否存在一个名为 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