我对这段代码有疑问,老实说,我不太确定问题出在哪里。最初的问题是我编写的应用程序打开了一个 word 实例,但是如果机器上已经有一个 word 实例,它只会打开第二个实例,但它不会插入我在该实例中创建的文档. 我最终得到的是两个窗口,一个是 Word 本身,没有文档,一个是 Word 和文档。他们原来运行的 word 应用程序仍然正常运行,在它自己的 Word/文档组合中,它应该有。我试图通过 getObject 获取正在运行的 Word 实例来解决这个问题,但它只是不断返回失败。
我读到你必须给单词焦点然后失去焦点才能让它与 ROT 一起列出,但即使等待 10 分钟后,它仍然返回以下错误:
AnswerWizard = {"错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。"}
我想知道我是否缺少关于 getObject 以及链接到导致此错误的另一个 Office 应用程序实例的能力?
信息:
Windows 7的
词 2003
桌面 VB 应用程序
代码:
Private wordApp As Word.Application
Public Sub New()
Try
wordApp = CType(GetObject(, "Word.Application"), Word.Application)
Catch ex As Exception
wordApp = New Word.Application
End Try
End Sub
注意:尝试使用和不使用 CType 都没有关系。如果没有运行单词的实例,它确实有效,但这只是因为它属于我的例外。
问题:
如果我尝试链接到已经运行的 Word 实例,代码将运行而不会引发错误,但我得到 AnswerWizard = {"Error HRESULT E_FAIL has been returned from a call to a COM component."}。然后我的代码继续打开一个空白单词和单词/文档的实例,总共有两个窗口,而应该只有一个。我错过了关于 getObject 的一些东西吗?