导出附加在单个 pdf 文件中的多个 word 文档

Export several word documents appended in a single pdf file

我在 Excel 工作表中嵌入了一个 MS-Word 文档,其名称为 SalaryPaycheck

MS-word 文档包含几个指向工作表单元格的链接字段。

我已经多次更新链接的单元格并执行以上字段的更新。

然后我需要在每次字段更新时执行导出嵌入式 MS-Word 文档,如 PDF

所以我需要所有导出的文件都附加到一个 pdf 文件中。

我使用下面的代码:

Sub PrintIt()

    Dim objWord As Word.Application
    Dim objDoc As Word.Document
    Dim i as Integer

    ActiveSheet.OLEObjects("SalaryPaycheck").Activate
    Set objWord = GetObject(, "Word.Application")
    objWord.Visible = False
    Set objDoc = objWord.ActiveDocument
    objWord.Application.DisplayAlerts = wdAlertsNone
    objWord.Application.ScreenUpdating = False

    For i = 1 to 10

        Range("Key").value = i

        objDoc.Fields.Update

        objDoc.ExportAsFixedFormat _
            outputfileName:=ThisWorkbook.path & "\Results\" & "rep" & i & ".pdf" _
            , exportformat:=wdExportFormatPDF _
            , openafterexport:=False _
            , optimizefor:=wdExportOptimizeForPrint _
            , Range:=wdExportAllDocument _
            , Item:=wdExportDocumentContent _
            , includedocprops:=False _
            , keepirm:=True _
            , createbookmarks:=wdExportCreateNoBookmarks _
            , docstructuretags:=True _
            , bitmapmissingfonts:=True _
            , useiso19005_1:=False
    Next i

    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing

End Sub 'Print it

如何使用 objDoc.SaveAs2objDoc.ExportAsFixedFormat(如上所示)与 objDoc.PrintOut' whith 'Append:=True 参数相同?

或者在这种情况下如何使用 .PrintOut 和 'Append:=True' 参数 (PDF) 安静地工作(使用 OutputFileName:=path & filenamePrintToFile:=True

如另一个中所述,只需将文档附加到word

Sub PrintIt()

Dim objWord As Word.Application
Dim objDocTotal As Word.Document
Dim objDoc As Word.Document
Dim i As Integer
Dim strOutfile As String
Dim rg As Word.Range

    ActiveSheet.OLEObjects("SalaryPaycheck").Activate
    Set objWord = GetObject(, "Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.ActiveDocument
    Set objDocTotal = Documents.Add
    objWord.Application.DisplayAlerts = wdAlertsNone
    objWord.Application.ScreenUpdating = True

    For i = 1 To 10

        Range("Key").Value = i

        With objDoc
            .Fields.Update
            .Content.Copy
        End With

        Set rg = objDocTotal.Content
        With rg
            .Collapse Direction:=wdCollapseEnd
            If i > 1 Then .InsertBreak wdPageBreak
            .PasteAndFormat wdFormatOriginalFormatting
        End With
    Next i


    strOutfile = "<Path>\Salary.pdf"

    objDocTotal.ExportAsFixedFormat outputfileName:= _
                                    strOutfile, exportformat:=wdExportFormatPDF, _
                                    openafterexport:=False, optimizefor:=wdExportOptimizeForPrint, Range:= _
                                    wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent



    objDocTotal.Close False
    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing

End Sub