在用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
发表评论