首先谢谢konggs版主的帮助,我在konggs版主的基础上添加了一些,倒是可以实现循环6次,结果也有6个我想要得到的文件,还有一个问题,我类似的还有一个合并后有590多条纪录,共用了240多个域,页面有7页,我循环了50次,用了10分钟,请看看还有什么办法可以节省时间啊! '合并后每一节单独为一个文档 Sub 合并后单独一个文档() Dim works, Charsg For works = 6 To 1 Step -1 On Error GoTo handler: Dim Sen As Section '节号 Dim oldDoc As Document '原文档 Dim newDoc As Document '新文档 Dim fileName As String '文件名 Const filePath = "f:\" '存储路径,根据实际情况改一下 Application.ScreenUpdating = False Set oldDoc = ActiveDocument For Each Sen In oldDoc.Sections Sen.Range.Copy '复制本节内容 '具体文件名,根据实际情况改一下 fileName = Sen.Range.Paragraphs(1).Range '以第1段的内容 fileName = Mid(fileName, 4, Len(fileName) - 4) '去年前3个字符,从第6个开始计算 Set newDoc = Documents.Add '添加新文档 With newDoc .Content.Paste '内容复制过来 .SaveAs filePath & fileName & ".doc" '存盘 .Close '关闭 End With Next Application.ScreenUpdating = True handler: Application.ScreenUpdating = True ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord Next works End Sub
|