-1

我有一个完整的 Access 数据库和一个 Word 文档,我想通过 Word 使用 VBA 合并它们。设置合并,我有以下内容:

Sub MergeTest
    ActiveDocument.MailMerge.OpenDataSource Name:= _
        "C:\Users...MailMerge.accdb",_
         ConfirmConversions:=False,_ 
         ReadOnly:=False,_ 
         LinkToSource:=True, AddToRecentFiles:=False, _
         PasswordDocument:="", PasswordTemplate:="",_
         WritePasswordDocument:="", _
         WritePasswordTemplate:="", Revert:=False,_
         Format:=wdOpenFormatAuto,
End Sub

我知道 OpenDataSource 命令还有更多参数,但我不太确定这些参数有哪些。无论如何,一旦文件合并,我知道它是这样的:

ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="Year"
ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range, Name:="Volume"

添加标签。问题是,这需要我在执行命令之前选择工作表上的每个区域。有没有办法标记文档上要在脚本中引用的区域?

4

1 回答 1

1

为了定义稍后插入某些内容的“目标”,请将书签插入到文档中。然后

Document.MailMerge.Fields.Add Range:=Document.Bookmarks("NameOfBookmark").Range, Name:="Year"

请注意,ActiveDocument在整个代码中使用它不是一个好主意。更好的是声明一个Word.Document对象并使用您正在打开的文档(或从模板创建)实例化它。这将更快并且更不容易出错(如果某些内容应该更改 Word 应用程序中的当前活动文档)。就像是:

Dim doc as Word.Document
Set doc = ActiveDocument
doc.MailMerge.OpenDataSource 'and so on
于 2016-06-14T18:04:06.703 回答