VBA Word
01.10.2017 16:47:21
kirsten
ich habe ein angepassten Code, um eine Serienbriefdatei in einzelne PDF's zu speichern. Inzwischen tut sie auch im Wesentlichen was sie soll, einzig: wenn alle PDF`s gedruckt sind, stockt er an folgender Stelle: " .ActiveRecord = i" mit dem Hinweis: "Laufzeitfehler 5853, kann Parameter nicht finden" und bezieht sich auf einen Datensatz, den es nicht mehr gibt (z.B. Nr. 6 bei 5 Empfängern des Serienbriefes). Kann mir jemand erklären, wo der Fehler liegt? Vielen Dank schonmal für eure Mühe.
Sub Merge_To_Individual_Files()
'Merges one record at a time to the chosen output folder
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("Einheit")) = "" Then Exit For
StrName = .DataFields("Einheit") & "_" & .DataFields("Nachname")
End With
.Execute Pause:=False
End With
StrName = Trim(StrName)
With ActiveDocument
'.SaveAs2 FileName:=StrPath & StrName & ".docx", FileFormat:=wdFormatXMLDocument, _
AddToRecentFiles:=False
' and/or:
.SaveAs2 FileName:=StrPath & StrName & ".pdf", FileFormat:=wdFormatPDF, AddToRecentFiles:= _
False
.Close SaveChanges:=False
End With
Next i
End With
Application.ScreenUpdating = True
End Sub