如何用vba连接关联word邮件合并的数据源?

在用word做邮件合并时,我们经常需要选择邮件合并的数据源。

选择的数据源经常是excel文档。

在vba中可以使用MailMerge对象的OpenDataSource方法连接外部数据源。

MailMerge对象的OpenDataSource方法具有许多参数,以下是一个通用的连接excel数据源的代码:

Sub QQ1722187970()
    Dim oMailMerge As MailMerge
    Dim oDoc As Document
    Dim oMailMergeDataSource As MailMergeDataSource
    Dim sPath As String
    Dim sName As String
    sPath = Word.ActiveDocument.Path & "\"
    sName = "测试.xlsx"
    Set oDoc = Word.ActiveDocument
    Set oMailMerge = oDoc.MailMerge
    '连接字符串
    sConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & sName & ";Extended Properties='HDR=YES;IMEX=1'"
    '邮件合并对象
    With oMailMerge
        .MainDocumentType = wdFormLetters
        'Name参数表示excel数据源的完整路径, LinkToSource参数表示是否每次打开word文档都执行sql命令,Revert表示如果数据源已经打开是否重新打开
        .OpenDataSource Name:=sPath & sName, _
        LinkToSource:=False, _
        Revert:=True, _
        Connection:=sConStr, _
        SQLStatement:="SELECT * FROM [sheet1$b2:c5]"
    End With
End Sub
       

发表评论