我正在开发一个基于Excel 2010的应用级插件。我需要编写处理程序来处理与Workbook接口相关联的一些应用程序事件,特别是NewWorkbook事件。
因此,在ThisAddIn_Startup处理程序中,我添加了以下代码:
Microsoft.Office.Interop.Excel.AppEvents_Event app = Globals.ThisAddIn.Application;
app.NewWorkbook += MyApp_NewWorkbook;
当在运行的Excel实例中创建新工作簿时,它可以正常工作。但是,当我运行新的Excel实例(通常情况下,这意味着创建新的工作簿)时,此事件不会被我的处理程序捕获。我认为,当我运行新的Excel实例时,NewWorkbook事件发生在ThisAddIn_Startup事件之前。
在打开现有工作簿以及双击文件时,WorkbookOpen事件的应用程序表现得就像我预期的那样-事件被捕获。我想知道为什么这些事件的处理方式不同?
在这种情况下,我该怎么办?我需要识别是否创建了新的工作簿或打开了现有的工作簿,无论Excel是否已经运行。