我有一个包含重复行的 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=1
或pg=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
您可以插入页码无需代码。