【发布时间】:2015-10-15 10:12:17
【问题描述】:
我创建了一个 Excel 加载项,该加载项尝试在打开此会话期间打开的所有工作簿时运行。它有时会起作用 - 但并非总是如此,我不知道为什么。
我创建了一个文件,addin.xlam,在这个文件中,ThisWorkbook,我有:
Private XLApp As CExcelEvents
Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub
然后我根据这里的代码创建了一个类模块:http://www.cpearson.com/Excel/AppEvent.aspx
Private WithEvents App As Application
Private Sub Class_Initialize()
Set App = Application
End Sub
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If Not ActiveWorkbook Is Nothing Then
If InStr(ActiveWorkbook.Name, "New Quote") Then
quoteCheck = MsgBox("Do you want to run the Quote Generator?", vbYesNo, "Quote Generator")
If quoteCheck = vbYes Then
prepare
Else
End
End If
End If
End If
End Sub
如果我关闭 Excel 并从 Windows 资源管理器打开文件,则会出现以下行:
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
然后启动代码 - 如果相关工作簿的名称中有“新报价”,则宏运行。繁荣。完美。
但是,在此运行一次之后,如果我打开另一个带有“新报价”字样的工作簿,则不会触发此私有子。为什么?
我如何让这个每次我打开任何工作簿时触发?
【问题讨论】: