У меня есть список имен, которые мне нужно объединить каждое из них в предварительно установленный документ Word, а затем экспортировать / распечатать / сохранить отдельный «сертификат» в формате PDF для каждого из них.
Я помещаю код, чтобы изменить документ Word, в то время как и после его изменения я вызываю функцию, которую я называю «Imrpimir PDF». Вот весь код:
While ThisWorkbook.Sheets("Lista de Presença").Cells(i, 2) <> Empty
If ThisWorkbook.Sheets("Lista de Presença").Cells(i, 4) = "Presente" Then
participante = UCase(ActiveWorkbook.Worksheets("Lista de Presença").Cells(i, 2))
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(ThisWorkbook.Path & "\" & ActiveWorkbook.Worksheets("Evento").Cells(1, 7).Text & " " & ActiveWorkbook.Worksheets("Evento").Cells(1, 2).Text & "\" & "Modelo.docx")
With wrdDoc
.Application.Selection.Find.Text = "#NOME"
.Application.Selection.Find.Execute
.Application.Selection.Range = participante
Imprime_PDF (participante)
Do
On Error Resume Next
Set wrdApp = GetObject(, "Word.Application")
If Not objWord Is Nothing Then
wrdApp.Quit False
Set wrdApp = Nothing
End If
Loop Until wrdApp Is Nothing
End With
Set wrdApp = Nothing
Set wrdDoc = Nothing
End If
i = i + 1
Wend
End Sub
Функция "Imprime_PDF" имеет вид:
Function Imprime_PDF(participante)
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ThisWorkbook.Path & "\" & ActiveWorkbook.Worksheets("Evento").Cells(1, 7).Text & " " & ActiveWorkbook.Worksheets("Evento").Cells(1, 2).Text & "\" & ActiveWorkbook.Worksheets("Evento").Cells(1, 2).Text & " - Certificado de " & participante & ".pdf ", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _
Range:=wdExportAllDocument, _
IncludeDocProps:=True, _
CreateBookmarks:=wdExportCreateWordBookmarks, _
BitmapMissingFonts:=True
End Function
Между тем этот код изменяет все документы Word, но сохраняет только в формате pdf первый один.
Заранее спасибо!