我遇到了这一点代码的问题,我不太确定问题是诚实的。原来的问题是我写的应用程序打开了一个单词的实例,但是如果机器上已经有单词的实例,它只会打开第二个实例,但它不会插入我在该实例中创建的文档。我最终得到的是两个窗口,一个是Word本身,没有文档,另一个是Word和文档。它们的原始运行字应用程序仍然像正常情况一样运行,在它自己的Word/Document组合中,就像它应该具有的一样。我尝试通过getObject获取Word的运行实例来解决此问题,但它只是不断返回失败。GetObject返回H_RESULT E_FAIL
,我读了你必须给字焦点,然后失去焦点为它获得与ROT上市,但即使是在等待10分钟后,仍返回以下错误:
AnswerWizard = {“错误HRESULT E_FAIL已从调用COM组件返回。“}
我想知道是否有我丢失的关于getObject和能够链接到导致此错误的Office应用程序的另一个实例吗?
信息:
Windows 7的
Word 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 = {“错误HRESULT E_FAIL已从调用返回到COM组件。“}。然后,我的代码继续打开一个空白单词和单词/文档的实例,总共只有两个窗口应该只有一个。我错过了关于getObject的东西吗?
只是让我得到你说的话,我应该创建一个Dim wordapp的实例作为New Word.Application,然后使用wordApp.Selection生成我的文档?我尝试的最终目标是停止这个双重开放问题。 – Gyhth 2013-02-18 01:34:40
你明白我的理解。尽管我没有双重开放的问题。 MS说,Word 2003以无形方式打开(我正在使用Vista/Word 2007),所以当您将其显示为可见时,可能会出现问题... – grahamj42 2013-02-18 06:01:47
我没有想到这是诚实的。我拥有的是每次生成新文档时调用的函数,并且每次创建新文档时都会将wordApp.Visible设置为true。我是否应该只在整个事件中调用wordApp.Visible一次,还是在后面为所有文档设置可见性? – Gyhth 2013-02-19 15:07:30