当我运行下面的代码,我得到下面的异常:收到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