Гораздо лучший подход - создавать отдельные документы с самого начала. Добавив следующий макрос в основной документ mailmerge, вы можете создать один выходной файл для каждой записи. Файлы сохраняются в той же папке, что и основной документ mailmerge, используя поле «Дата» в источнике данных для имен файлов. Выходные форматы PDF и DOCX обслуживаются. Помните, что если в вашем источнике данных есть повторяющиеся даты, выживет только последняя обработанная дата.
Sub Merge_To_Individual_Files()
'Merges one record at a time to the folder containing the mailmerge main document.
' Sourced from: http://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html
Application.ScreenUpdating = False
Dim StrFolder As String, StrName As String, MainDoc As Document, i As Long, j As Long
Set MainDoc = ActiveDocument
With MainDoc
StrFolder = .Path & Application.PathSeparator
For i = 1 To .MailMerge.DataSource.RecordCount
With .MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = i
.LastRecord = i
.ActiveRecord = i
If Trim(.DataFields("Date")) = "" Then Exit For
StrName = Format(.DataFields("Date"), "YYYY-MM-DD")
End With
.Execute Pause:=False
If Err.Number = 5631 Then
Err.Clear
GoTo NextRecord
End If
End With
With ActiveDocument
.SaveAs FileName:=StrFolder & StrName & ".docx", FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
' and/or:
.SaveAs FileName:=StrFolder & StrName & ".pdf", FileFormat:=wdFormatPDF, AddToRecentFiles:=False
.Close SaveChanges:=False
End With
NextRecord:
Next i
End With
Application.ScreenUpdating = True
End Sub
Примечание 1: Приведенный выше код по умолчанию сохраняет результаты в папку основного документа mailmerge. Вы можете изменить папку назначения, отредактировав:
StrFolder = .Path & Application.PathSeparator
Примечание 2: Если вы переименуете вышеупомянутый макрос в «MailMergeToDoc», нажатие на кнопку «Редактировать отдельные документы» прервет объединение, и процесс запустится автоматически. Потенциальным недостатком перехвата процесса «Редактирование отдельных документов» является то, что вам больше не нужно выбирать, какие записи объединять на этом этапе. Однако вы все равно можете достичь того же результата - и с большим контролем - с помощью инструментов «Редактировать список получателей».