选择所有工作表并打印成单个 pdf 文件

Posted

技术标签:

【中文标题】选择所有工作表并打印成单个 pdf 文件【英文标题】:Select all sheets and print into single pdf file 【发布时间】:2015-10-05 09:59:20 【问题描述】:

我想将所有工作表打印到一个 pdf 文件中。每张纸都将位于新页面的开头。

我试过了:

Private Sub CommandButton9_Click()

 ActiveWorkbook.Sheets.Select
 With Selection
 .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
 "E:\tempo.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
 IgnorePrintAreas:=False, OpenAfterPublish:=True
End With

End Sub

我收到一条消息:“对象'Sheets'的方法'Select'失败。”

谢谢!

【问题讨论】:

查看Only save populated spreadsheets with filled in cells as PDF 了解几种方法。 所以循环遍历工作表,例如:for each ws in thisworkbook.sheets 顺便说一句,select 失败很可能是因为您有一些隐藏的工作表,因此无法选择 @Raugmor 你是对的!我完全忘记了我真正想删除的一张纸……那是一张隐藏的纸! 【参考方案1】:

而不是activesheet.export... 使用activeworkbook.export... 每张纸将按照您对每组纸的打印设置进行显示。

或者使用变量如:

Sub Button1_Click()
    Dim wb As Workbook, Fnm As String

    Set wb = ThisWorkbook
    Fnm = "C:\Users\Dave\Downloads\TestMe.pdf"

    wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Fnm

End Sub

【讨论】:

它正在工作!只是一个小问题 - 在 PDF 文件中,我在 2 张纸之间有一个空白页。你怎么看,我需要设置打印区域,还是你有更好的主意?我想让整个程序尽可能轻。谢谢! 我找到了答案Set wbBook = ActiveWorkbook For Each wsSheet In wbBook.Worksheets wsSheet.Activate ActiveSheet.UsedRange Next wsSheet

以上是关于选择所有工作表并打印成单个 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章

将excel文件中选择的工作表打印为python中的pdf

用vba新建工作表,并命名

如何将EXCEl中多张Sheet工作表转换成一个PDF

如何将EXCEl中多张Sheet工作表转换成一个PDF

VBA 打印为 PDF 并使用自动文件名保存

打印PDF文件但文本框显示不了