Когда я запускаю следующий код, я получаю исключение ниже: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
Человек, извините, что услышал это. Я занимался этим вопросом несколько раз, и это всегда было похоже на колдовство, чтобы заставить его работать. Основная проблема здесь заключается в том, что к тому времени, когда вы дойдете до «ReportBook.Close (True)» Excel больше не управляет ReportBook - что-то его освобождает - отсюда и ошибка. Пробовали ли вы код с помощью отладки, добавляя часы в ReportBook? –
Получил! Наступил кодовый шаг. Мой код случайно открыл один и тот же файл дважды и дважды закрыл его (хорошо, а затем разбился при закрытии второго раза). Спасибо за вашу помощь. – Steven