我有一个excel add in(xlam),在excel打开时会调用用户窗体。
当我现在打开一个现有的excel文件时,用户窗体将按预期显示,并且我可以单击“确定”按钮以关闭该用户窗体。不幸的是,此后,我要打开的工作簿没有显示。
有人知道为什么工作簿没有打开吗? excel会忘记他打算打开的工作簿吗?
答案 0 :(得分:0)
在外接程序中,您需要收听Excel的事件。因此,您需要基于Excel应用程序创建一个类。
因此,您将拥有一个名为clsCustomExcelHandlers
的类,
Option Explicit
Public WithEvents ExcelApplication As Excel.Application
Private Sub ExcelApplication_WorkbookOpen(ByVal Wb As Workbook)
' Do something here
MsgBox "You have opened " & Wb.FullName
End Sub
,然后在标准模块中,有一个公共变量保存此类的实例
Public clsCustomExcel As clsCustomExcelHandlers
,然后在加载项Workbook_open
中进行设置
Private Sub Workbook_Open()
Set clsCustomExcel = New clsCustomExcelHandlers
Set clsCustomExcel.ExcelApplication = Application
End Sub