加载项在启动时调用用户窗体时,工作簿无法打开

时间:2019-02-27 14:22:06

标签: excel vba startup userform

我有一个excel add in(xlam),在excel打开时会调用用户窗体。

当我现在打开一个现有的excel文件时,用户窗体将按预期显示,并且我可以单击“确定”按钮以关闭该用户窗体。不幸的是,此后,我要打开的工作簿没有显示。

  • 它正在与vbmodeless一起使用,因此它似乎已连接到用户窗体的“隐藏”或“卸载”
  • 当我打开新的Excel工作簿时,它运行正常

有人知道为什么工作簿没有打开吗? excel会忘记他打算打开的工作簿吗?

code of the add in

1 个答案:

答案 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