在Excel 2007的一个Excel加载项项目中,我需要检查事件以创建新工作簿。我还需要抓住Workbook_Open活动,我很容易做到这一点......在互联网上的研究中我发现了以下内容:
在打开任何工作簿时引发Application.WorkbookOpen。高强 将作为参数打开的工作簿传递给此事件。这个 创建新的空白工作簿时不会引发事件。该 改为引发Application.WorkbookNew事件。
不幸的是,我目前无法找到Application.WorkbookNew事件......我遗失了什么?
输入应用程序后。自动完成为工作簿提供了一个很好的长事件列表(包含Open),但我找不到WorkbookNew事件......
有什么想法吗?
谢谢!
答案 0 :(得分:7)
您正在寻找Application.NewWorkbook event
。 Here's the VBA reference。这是一个example in C#/VB.Net
编辑:
我无法确认此信息的有效性,但我找到了以下解释(link):
NewWorkbook事件是一个应用程序级事件。既然有的话 也是同名的财产,Intellisense不会向您显示此信息 除非您明确将应用程序对象强制转换为应用程序 事件:
((Excel.AppEvents_Event)ThisApplication).NewWorkbook += new Microsoft.Office.Interop.Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
事件处理程序:
void ThisWorkbook_NewWorkbook(Microsoft.Office.Interop.Excel.Workbook Wb) { MessageBox.Show("New workbook" + Wb.Name); }
您尝试使用的程序仅在 ThisWorkbook VBA项目。它不能在Excel之外使用 环境。