我已經花了3小時在網上搜索無效的答案,所以我希望你能幫助我。我正在編寫一個使Excel自動運行的應用程序。應用程序可以選擇「顯示/隱藏Excel表格」,以便查看它,進行最終更改等等。檢測Excel文件是否已關閉
關閉應用程序自然會關閉Excel的實例,但是,有人可能會直接退出Excel,而無需考慮。這打破了我的應用程序,我似乎無法找到「檢查相同的工作簿是否仍然打開,如果不是,重新打開它」,在保存之前
我試過各種各樣的東西:檢查Excel應用程序是否爲空(當它爲!= null時,它將正確保存,但是當它爲「null」(或至少,除!以外的內容= null時,它甚至不會觸及斷點,因此我完全丟失:(
請幫助
編輯:感謝所有答覆到目前爲止,我會盡快給予回覆他們
AJ問我來編輯我到的問題提供更多信息:我使用C#應用程序中的COM Interop自動運行Excel。該應用程序允許用戶輸入某些統計數據,然後在Excel中進行更新。有一個按鈕允許Excel顯示/隱藏,以防有人想要檢查工作表中的任何其他信息如果有人直接退出Excel,那麼仍然可以使用顯示/隱藏按鈕(它顯示的Excel應用程序沒有工作簿加載)和相同的Excel實例仍顯示在任務管理器,但當我點擊「保存」按鈕。
我稍有不同的地方,最後一次加一個try/catch(未捕獲任何錯誤最後一次,現在它捕獲了兩個錯誤:
從HRESULT異常:0x800401A8
和
調用的對象已經與其客戶端斷開(異常來自HRESULT:0x80010108(RPC_E_DISCONNECTED))。
所以基本上看來我需要重新「重新連接」兩個,雖然與n在網絡上四處尋找新聞錯誤消息似乎並不表明它可能是一個問題。
我想知道是否最好將所有值存儲在字符串中(也許在應用程序失敗的情況下寫入臨時文件),然後在應用程序關閉時最終將它們推送到Excel中?
您是否獲得未處理的異常,但此錯誤:0x800A01A8? – jcolebrand 2010-05-01 01:09:34
「有人很可能會直接退出Excel,而不會想到」這種情況在95%的時間內會發生。 – Jay 2010-05-01 03:27:45
@Charlie - 你可以編輯你的問題,提供更多關於你如何「自動化」Excel的上下文 - 它是通過C#應用程序的COM Interop還是其他一些方法? – 2010-05-01 03:48:04