在VBA中引用已打开的word文档

时间:2017-07-05 14:13:42

标签: excel vba excel-vba word-vba

我使用Excel VBA打开一个单词模板,它使用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

2 个答案:

答案 0 :(得分:0)

您是说每次运行时都已打开文档?编写代码的方式,它将执行此操作:

1)打开新的空白Microsoft Word进程

2)在新流程中,打开您选择的工作簿

3)使新进程成为活动窗口

4)does stuff

如果您希望将其附加到已打开的文件,则需要GetObject而不是CreateObject。所以改变:

Set objWord = CreateObject("Word.Application")

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

这将附加到当前打开的进程,然后在该进程中打开工作簿。但是,它每次都会打开该文档的新副本,因为这就是您要告诉它的内容。

答案 1 :(得分:0)

试试这个:

With objWord 

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

End With