當我運行下面的代碼,我得到下面的異常:收到COMException(0x80010108 - RPC_E_DISCONNECTED)時關閉Excel.Workbook
''# NOTE: ExcelApp is a Private main form variable
Dim ReportBooks As Excel.Workbooks = ExcelApp.Workbooks
Dim ReportBook As Excel.Workbook = ReportBooks.Open(localFilename)
Dim ReportSheet As Excel.Worksheet = ReportBook.Sheets("Report")
''# Retreive data from sheet
ReleaseCOM(ReportSheet)
ReportBook.Close(True) ''# Error raised here
ReleaseCOM(ReportBook)
ReleaseCOM(ReportBooks)
ERROR: COMException was unhandled The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))
注:所有數據似乎已經retreived正確。
請幫我診斷並克服這個錯誤。
不幸的是,換行導致錯誤和行之前沒有任何效果。試圖關閉工作表時程序仍然崩潰。 – Steven 2010-03-11 15:03:04
男人,很抱歉聽到這個。我幾次處理這個問題,它總是像魔術一樣讓它工作。這裏的主要問題是,當你進入'ReportBook.Close(True)時,Excel不再管理ReportBook - 有些東西正在釋放它 - 因此是錯誤。您是否嘗試過在調試中添加WatchBook到ReportBook的代碼步驟? – 2010-03-11 15:12:05
Got it!代碼步進工作。我的代碼不小心打開了同一個文件兩次,並關閉了兩次(好一次,然後在第二次關閉時崩潰)。謝謝你的幫助。 – Steven 2010-03-11 16:44:04