在 Excel 中将“第 X 页,共 X 页”的重复行保存为 PDF

在 Excel 中将“第 X 页,共 X 页”的重复行保存为 PDF

我有一个包含重复行的 Excel 文件。在这个重复行中,我想将“第 1 页,共 2 页”和“第 2 页,共 2 页”等放入每个页面。我发现这个 VBA 代码在打印文件时运行良好,但在将文件保存为 PDF 时不起作用。

Sub PrintWithPgNumInTitleRow()
Dim NumPages As Long, pg As Long
    NumPages = ExecuteExcel4Macro("Get.document(50)")
    For pg = 1 To NumPages
        With ActiveSheet
            .Range("O10").Value = "Page " & pg & " of " & NumPages
            .PrintOut from:=pg, To:=pg
        End With
    Next pg
End Sub

当我将默认打印机更改为 pdf writer 时,它要求我输入两个文件名(两页),但我希望仅将这两页放在一个文件中。

答案1

您将获得两个 Pdf 文档,因为您只打印一页

.PrintOut from:=pg, To:=pg

例如 2 页pg=1pg=2

.PrintOut from:=1, To:=1 

.PrintOut from:=2, To:=2

但为什么要更改打印机并提供文件名?使用导出为固定格式

Sub PrintWithPgNumInTitleRow()
Dim NumPages As Long, pg As Long 'skip all code, except last line (`ExportAs...`), and use Page-Setup
    NumPages = ExecuteExcel4Macro("Get.document(50)")
    With ActiveSheet
        For pg = 1 To NumPages
            .Range("O10").Value = "Page " & pg & " of " & NumPages

        Next pg
    '.PrintOut from:=1, To:=NumPages `solution for printer
    .ExportAsFixedFormat Type:=xlTypePDF, FileName:=“path\to\doc.pdf”, _ 
                         Quality:=xlQualityStandard, DisplayFileAfterPublish:=True, _
                         From:=1, To:=NumPages 
    End With
End Sub

您可以插入页码无需代码。

相关内容