簡體   English   中英

在VBA中引用已打開的Word文檔

[英]Referencing already opened word document in VBA

我正在使用Excel VBA打開word模板,它使用來自Excel電子表格的信息填充模板。 從那里,我在電子表格上有一個按鈕,我想在每次單擊時在Word文檔中填充另一行。 我遇到的問題是,當我運行按鈕宏時,它只是打開另一個Word文檔並粘貼按鈕信息,而不是在已打開的文檔上進行操作。 我將在下面附加我的代碼,我相信這是一個簡單的修復,我似乎無法找到解決方法。

Sub RepairCal()

Dim objWord As Object
Dim objDoc As Object

    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Open("C:\Users\z003narc\Documents\Gage Lab Form Template.docm")

objWord.Activate

With Selection

   objWord.ActiveDocument.Selection.MoveDown count:=6
   objWord.ActiveDocument.Selection.MoveRight count:=5
   objWord.ActiveDocument.Selection.TypeText Text:="Repair and Calibration"

End With

End Sub

您是說每次運行時都已經打開了文檔嗎? 您編寫代碼的方式將執行此操作:

1)打開新的空白Microsoft Word進程

2)在新過程中,打開您選擇的工作簿

3)使新進程成為活動窗口

4) does stuff

如果要將其附加到已經打開的文件中,則需要執行GetObject而不是CreateObject 所以改變:

Set objWord = CreateObject("Word.Application")

Set objWord = GetObject(, "Word.Application")

這將附加到當前打開的進程,然后在該進程中打開工作簿。 但是,它仍然每次都會打開該文檔的新副本,因為這就是您要執行的操作。

嘗試這個:

With objWord 

   .Selection.MoveDown count:=6
   .Selection.MoveRight count:=5
   .Selection.TypeText Text:="Repair and Calibration"

End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM