使用HRESULT打开Excel 2016文件失败:0x800706BE

时间:2016-10-21 19:42:09

标签: excel vb.net 64-bit hresult

用于打开现有Excel文件的简单VB.NET代码在打开命令时始终失败,并出现以下错误:

远程过程调用失败。 (HRESULT异常:0x800706BE)

我已经在Stack Overflow和Microsoft网站上搜索了这个错误,看起来似乎没有人有明确的答案。但有一点似乎是64位Excel都会出现这种情况。

无论如何,我在这里寻求这个问题的帮助。下面是我非常简单的代码:

Imports Microsoft.Office.Interop.Excel
Dim XLApp As Application = New Application()
Dim XLWkb as Workbook = XLApp.Workbooks.Open("TestExcel.xlsx")
Dim XLSht as WorkSheet = XLWkb.Sheet(1)
XLWkb.Close()
XLApp.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(XLSht)
System.Runtime.InteropServices.Marshal.ReleaseComObject(XLWkb)
System.Runtime.InteropServices.Marshal.ReleaseComObject(XLApp)

上面的代码在XLApp.Workbooks.Open行的那条可怕消息中一直失败。

My windows is Windows 7 Enterprise Service Pack 1, 64-bit
My Excel is 2016 MSO (16.0.6701.1041) 64-bit version.
My MS Office is MS Office 365 ProPlus -en US (2016 version)
My VS is Visual Studio Community 2015 Version 14.0.24720.00 Update 1
Visual Basic 2015 00322-20000-00000-AA181
My project has the following references:

   Microsoft.Office.Core: Microsoft Office 16.0 Object Library
   Microsoft.Office.Interop.Excel : Microsoft Excel 16.0 Object Library
   VBIDE : Microsoft Visual Basic for Applications Extensibility 5.3

另外,我已经尝试将Excel文件放在我的C:\ Users个人文件夹中,也尝试使用' CreateObject("Excel.Application")'创建Excel应用程序时,所有操作都失败,并且在打开'打开'调用

好的,我也在不同的Windows 7 Professional 64位计算机上尝试过相同的程序,使用MS Office 2007(因此,Microsoft Excel 12.0对象库等),编译为x86,它也在' Open& #39;呼叫。但还有另一个常见错误:HRESULT: 0x80010105 (RPC_E_SERVERFAULT),已由许多其他开发人员发布。

然后,我在Windows 8计算机上尝试了相同的程序,并使用Office 2007编译到x86,它运行得很好。

所以,在这一点上,我认为这是Microsoft.Office.Interop.Excel的Microsoft Windows 7错误;所以,我放弃了进一步尝试并切换到7以外的Windows版本的开发。

任何见解都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

在Excel应用程序上调用“打开”方法解决此异常的解决方案是将Excel应用程序设置为可见:

Dim XLApp As Application = New Application()
XLApp.Visible = True

不要问我为什么,因为我不知道,任何可以启发我的人,请这样做。

答案 1 :(得分:0)

您需要为Excel禁用“ FoxitReader PDF Creator COM加载项”。 这个对我有用。 Source