如何在从Access访问VBA时在MS Word中添加新的域代码

时间:2017-10-11 08:10:16

标签: vba access-vba word-vba

我将从访问中生成一个文档,并希望输入字段代码" ListNum"在文件中使用。我有以下宏,当从MS word运行时,正确地将字段代码添加到文档中。

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "LISTNUM  LegalDefault ", PreserveFormatting:=False

但是,当我通过单词对象从VBA运行时,它似乎不起作用。访问中的代码如下。

Dim objApp As Object
Set objApp = GetObject("Word.Application")

    Set objApp = CreateObject("Word.Application")
    objApp.Visible = True
    Set Word = objApp

    With Word
        .Documents.Add
        .activedocument.Fields.Add Range:=.Selection.Range, Type:=wdFieldEmpty, Text:="LISTNUM  LegalDefault ", PreserveFormatting:=False
    End With

如果我使用"运行"功能

Word.Run "ListNum"

从访问中调用宏语它也有效,虽然我可以使用它,但它并不理想,因为它依赖于用户在模板中有这个宏

感谢您的任何提示。

1 个答案:

答案 0 :(得分:0)

仅供参考,修复程序似乎如下

Type:=wdFieldEmpty

当移动到单词时,在访问中没有被识别,使用这个的常量值是正确的事情,下面的行代替

.activedocument.Fields.Add Range:=MyRange, Type:=-1, Text:="LISTNUM  LegalDefault "

我在单词中使用对象资源管理器找到了常数。