选择所有工作表并打印成单个 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 文件的主要内容,如果未能解决你的问题,请参考以下文章