Excel API 错误

Excel API Error

我正在使用标准化工具访问 Excel API(软件机器人)。但是,自从升级到 Office 2013 后,我在尝试打开工作簿时遇到错误。错误是这样的:

Internal : Could not execute code stage because exception thrown by code stage: Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

有很多代码,我不能确定哪一个失败了,但我认为是这 3 行(编辑我已经确认确实是这些代码行失败了):

Dim wb as Object = GetInstance(handle).Workbooks.Open(filename)
name = wb.Name
wb.Activate()

我还尝试在 CultureInfo 上添加一些行(没有帮助):

Dim wb as Object = GetInstance(handle).Workbooks.Open(filename)
Dim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("en-US")

wb.GetType().InvokeMember("Add", Reflection.BindingFlags.InvokeMethod, Nothing, wb, Nothing, ci)

name = wb.Name
wb.Activate()

我研究了这个错误(相当多)并发现了很多articles/posts建议一些区域设置(like this one from Microsoft)。我检查过我的 Windows 是否设置为英语(美国),我也相信 Excel 也是如此。但我不确定如何检查 Excel.

的语言

P.S。谁能告诉我这 3 行代码是 VBA 还是 VB.NET?

经过几个小时的研究(以及反复试验),我设法找到了解决方案。一行代码就足够了(这是新的第一行):

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")
Dim wb as Object = GetInstance(handle).Workbooks.Open(filename)
name = wb.Name
wb.Activate()