我正在開發Excel 2010應用程序級外接程序。我需要爲與Workbook接口相關的一些Application事件編寫處理程序,尤其是NewWorkbook事件。Excel VSTO 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實例中打開現有工作簿時以及當我只是雙擊該文件時,捕獲事件。我想知道爲什麼這些事件的處理方式不同?
在這種情況下該怎麼辦?我需要識別是否創建了新的工作簿,或者是否已打開現有工作簿,無論Excel是否已在運行。
我認爲空的工作簿模板並不算作「打開工作簿」。你將不得不註冊一些應用程序啓動事件來處理這種情況。 –