我遇到了這一點代碼的問題,我不太確定問題是誠實的。原來的問題是我寫的應用程序打開了一個單詞的實例,但是如果機器上已經有單詞的實例,它只會打開第二個實例,但它不會插入我在該實例中創建的文檔。我最終得到的是兩個窗口,一個是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