Как печатать в формате PDF, умножает текстовые документы с помощью VBA Excel - PullRequest
0 голосов
/ 09 марта 2020

У меня есть список имен, которые мне нужно объединить каждое из них в предварительно установленный документ 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 первый один.

Заранее спасибо!

...