我有我的excel数据表和我的word文档,如下所示
https://www.dropbox.com/s/my62tw9jsf...32018.xls?dl=0
https://www.dropbox.com/s/h5wb91ymd3...flo1.docx?dl=0
我的word文档已经配置了合并字段布局。我尝试过将邮件合并到word,但不幸的是,每当我尝试邮件合并时,Word应用程序就会变成“没有响应”。
这里是已记录的宏:
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\[userName]\Desktop\New folder (18)\fixedcharge16032018.xls", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\[UserName]\Desktop\New folder (18)\fixedcharge16032018.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=35;Je" _
, SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
End Sub发布于 2018-03-18 12:59:52
数据源的连接字符串比宏记录器所能处理的更长。注意它是如何非常奇怪地被切断的:
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users[UserName]\Desktop\New文件夹Users[UserName]Properties=“”HDR=YES;IMEX=1;“;Jet:System database=”“;Jet OLEDB:RegistryPath=”;Jet:Engine Type=35;Je“__
它以;Je"结尾是不正常的。当我尝试在Word 2016中录制时,我看到了类似的东西。(差异是由于文件路径的长度造成的。)
幸运的是,您不需要标准连接字符串末尾的所有信息。它可以被编辑/缩减为Word的邮件合并可以使用的表单。
下面的方法对我有效--在IMEX=1;"之后切断连接字符串。备注,为了您的安全,我替换了文件夹路径中包含您名字的部分!你需要把它修改回你的路径。
Sub MergeMacro
' Macro1 Macro
'
'
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\[userName]\Desktop\New folder (18)\fixedcharge16032018.xls", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\[UserName]\Desktop\New folder (18)\fixedcharge16032018.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;", _
SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
End Subhttps://stackoverflow.com/questions/49346857
复制相似问题