在用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


发表评论