我使用 Visual Studio 2010 为 Microsoft Excel 2007 和 2010 开发了一个插件。
它在安装了它的所有计算机(在 Windows XP 和 Windows 7 上)上都能正常工作,除了一台装有 Windows 7 和 Office 2010 的机器。
当加载项尝试自动化 Microsoft Word 2010 以创建新文档并将 Excel 工作簿中的信息复制/粘贴到其中时,将显示以下消息:
*无法将类型为“Microsoft.Office.Interop.Word.DocumentClass”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Word._Document”。此操作失败,因为 IID 为“{0002096B-00000-0000-C000-0000000000046}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:应用程序调用了为不同线程编组的接口。(来自 HRESULT 的异常:0x8001010E (RPC_E_WRONG_THREAD))。*
我的程序循环遍历 Excel 工作簿的工作表并将它们复制到 Word 文档中。该错误发生在几个循环之后,当使用 Range.CopyPicture 方法将 Excel 范围复制到剪贴板时,当我尝试访问我的 Word 应用程序时会引发 RPC_E_WRONG_THREAD 错误。我不使用多个线程。
有人似乎有同样的问题,但尚未提供答案: http: //social.msdn.microsoft.com/Forums/en/vsto/thread/86abd253-9fb5-46cf-8565-dc2eaa02593b
用户具有管理权限,他尝试修复 MS Office 2010 安装,并再次卸载/安装它,但没有解决问题。在他的计算机上安装 Office 2007 后,该加载项在 Excel 2007 中运行良好,但在 Excel 2010 中仍然无法正常运行。
你有没有见过这个错误,你知道如何解决它吗?
谢谢