多语言展示
当前在线:379今日阅读:60今日分享:41

Word邮件合并拆分

当我们需要批量生成名片,合同,成绩单等有相同内容的文件时,使用word邮件合并功能非常方便。如果你还需要把word文件发给不同的人就需要再拆分一下,用复制粘贴的方法拆分word,数量一多不仅效率低,还会因为文档格式变化变得不一样,如果有图片的话又无法用大纲视图拆分,如果转成PDF文件再拆分后再转回word,格式还是会有变动,对于喜欢完美的强迫症患者来说,这真的是难以接受。       其实就算有图片或表格,也是可以完美拆分的,下面我用word2010给大家举个例子演示一下这套方法的完整流程。年底了,老板让助理给手下的10名一线员工写一封表扬信,的辛苦工作表示肯定,同时也调的期望,为了方便回收整理,以邮件附件的形式发给对方。
工具/原料
1

office

2

windows

方法/步骤
1

准备好需要替换的EXCEL数据源

2

打开word模板文件

3

邮件合并

4

文件拆分

5

代码如下:Sub myMailMerge()'主文档的类型为信函'合并全部数据记录'假设主文档已链接好数据源,可以进行正常的邮件合并Dim myMerge As MailMerge, i As Integer, myname As String, t As Stringt = ActiveDocument.PathSet fso = CreateObject('scripting.filesystemobject')    If (fso.folderexists(t & '\拆分后文档')) Then     Else       Set f1 = fso.createfolder(t & '\拆分后文档')     End IfSet myMerge = ActiveDocument.MailMergeWith myMerge.DataSource    If .Parent.State = wdMainAndDataSource Then        .ActiveRecord = wdFirstRecord        For i = 1 To .RecordCount            .FirstRecord = i            .LastRecord = i            .Parent.Destination = wdSendToNewDocument            '取得数据源第1个和第2个字段(合并域)的当前数据字符串,用以命名文件            myname = .DataFields(1).Value            .ActiveRecord = wdNextRecord            .Parent.Execute  '每次合并一个数据记录            With ActiveDocument                .Content.Characters.Last.Previous.Delete  '删除分节符                .SaveAs t & '\拆分后文档\' & myname '生成的各文档保存目录                .Close  '关闭生成的文档(已保存)            End With        Next    End IfEnd WithApplication.ScreenUpdating = TrueMsgBox '拆分操作完毕!' & vbCrLf & '请到本目录下“拆分后文档”文件夹查看!!', vbInformationEnd Sub

注意事项

如果插入合并域的格式不是文本,注意合并之前修改域代码,即选择插入的域,右键选择“切换域代码”,在“\”输入想要对应的格式,如日期格式:@“yyyy-MM-dd”

推荐信息