/ /エラー462に実行中:Excel VBAを介してWORDで作業しているときにリモートサーバーマシンが存在しません - excel、vba、excel-vba

エラー462に実行中:Excel VBAを介してWORDを操作しているときにリモートサーバーマシンが存在しません - excel、vba、excel-vba

ワードファイルを開こうとしていますプログラムでExcelのVBAとブックマークを使用してその中の内容を追加/編集します。ただし、代替実行時に "エラー462:リモートサーバーが存在しません"というエラーが表示されることがわかりました。私は多くのことを研究し、これが何かするべきことを理解していました。

しかし、以下のコードの断片を修飾された参照に修正する方法がわかりません。

        Set exR = ActiveSheet.Range(TestIdCol & CStr(DataRowNum) & ":" & TestIdCol & CStr(RowEnd))

ExistingEvidenceDoc = UseFileDialogOpen("Word Documents", "*.doc;*.docx")

Set objWord = CreateObject("Word.Application")

If ExistingEvidenceDoc <> "" Then
Set objDoc = objWord.Documents.Open(ExistingEvidenceDoc)
Else
Exit Sub
End If

objWord.Visible = True
Application.Wait Now() + TimeSerial(0, 0, 5)


Set objSelection = objWord.Selection

getExistingEvidences = ExistingTestEvidences(objDoc)
o = DataRowNum
For Each cell In exR
If cell.Value <> "" And Not IsInArray(cell.Value, getExistingEvidences) Then
objSelection.Style = ActiveDocument.Styles("Heading 1")
objSelection.TypeText text:="Heading " + cell.Value
objSelection.TypeParagraph
objSelection.MoveLeft
objSelection.HomeKey Unit:=wdLine
objSelection.EndKey Unit:=wdLine, Extend:=wdExtend
objDoc.Bookmarks.Add Name:="BMrk" + CStr(o), Range:=objSelection
objSelection.Copy
ActiveSheet.Range("Q" + CStr(o)).Select
ActiveSheet.PasteSpecial Format:="Hyperlink", Link:=False, DisplayAsIcon _
:=False
objSelection.MoveRight

"objSelection.Style = ActiveDocument.Styles("Paragraph")
objSelection.TypeText text:=Range(DescriptionCol + CStr(cell.Row)).Value
objSelection.TypeParagraph


ElseIf IsInArray(cell.Value, getExistingEvidences) = False Then
objSelection.EndKey
objSelection.Style = ActiveDocument.Styles("Heading 1")
objSelection.TypeText text:="Heading " + cell.Value
objSelection.TypeParagraph
objSelection.MoveLeft
objSelection.HomeKey Unit:=wdLine
objSelection.EndKey Unit:=wdLine, Extend:=wdExtend
objDoc.Bookmarks.Add Name:="BMrk" + CStr(o), Range:=objSelection
objSelection.Copy
ActiveSheet.Range("Q" + CStr(o)).Select
ActiveSheet.PasteSpecial Format:="Hyperlink", Link:=False, DisplayAsIcon _
:=False
objSelection.MoveRight

"objSelection.Style = ActiveDocument.Styles("Paragraph")
objSelection.TypeText text:=Range(DescriptionCol + CStr(cell.Row)).Value
objSelection.TypeParagraph
End If

o = o + 1

Next cell


MyErrorHandler:
MsgBox "SeeHeadingPageNumber" & vbCrLf & vbCrLf & "Err = " & Err.Number & vbCrLf & "Description: " & Err.Description

さらに、定義したexRの範囲が何であっても、それは範囲全体の実行を完了しますが、最後にMyErrorHandlerが呼び出されますが、その理由はわかりません。

みんな、私を助けてください...あなたの助けは大歓迎です。 前もって感謝します

回答:

回答№1は6

Wordオブジェクトへの2つの修飾されていない参照があります。

objSelection.Style = ActiveDocument.Styles("Heading 1")

これは2回出現します。

objSelection.Style = objWord.ActiveDocument.Styles("Heading 1")

それ以外の場合は、コード内で破棄できないように、Wordへの暗黙の参照を作成しています。


回答№2については4

あなたは最初にoprhanがないことを確認する必要があります winword.exe タスクマネージャで。それを殺すか、ログアウト/ログインしてそれらを取り除きます。

それでは、「明示的に」という言葉を閉じるために、次のようなコードを最後に追加してください。

(私は正確な文法についてよくわからない、うまくいけばあなたはそれをうまく行ける)

IF Not(objWord Is Nothing) Then

objWord.Close(False)
Set objWord = Nothing

End If

エラーハンドラに似たものを追加する必要があります。

開発やデバッグ中によく起こることですが、「正しく閉じられなかった」「孤立した」プロセスが見えなくてもハングアップすることがあります。

あなたも使用したいと思うかもしれません

Set objWord = New Word.Application

の代わりに

Set objWord = CreateObject("Word.Application")

それはあなたにオートコンプリート等を与えるので

しかし、それぞれの面で利点があります。