[英]VBA Excel export specified range of sheets to PDF
我在最后有几张纸,我不想将它们包含在我的 PDF 打印中。
我的代码有效,但看起来很困难......
Sub DPPtoPDF()
Sheets("Readme").Visible = False
Sheets("Asbuilt Photos 1").Visible = False
Sheets("Asbuilt Photos 2").Visible = False
Sheets("Splicing Photos").Visible = False
Sheets("Sign Off Sheet").Visible = False
Sheets("OTDR TRACE-1").Visible = False
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & ThisWorkbook.Name, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Sheets("Readme").Visible = True
Sheets("Asbuilt Photos 1").Visible = True
Sheets("Asbuilt Photos 2").Visible = True
Sheets("Splicing Photos").Visible = True
Sheets("Sign Off Sheet").Visible = True
Sheets("OTDR TRACE-1").Visible = True
Sheets("Frontsheet").Select
End Sub
基本上我想定义一些工作表范围,我想将其包含在我的 PDF 打印中。
不幸的是,根据以下线程:
看起来我只能在一张纸内设置范围。
其他方法:
Excel VBA 宏将一系列工作表保存到一个 pdf 然后重复不同系列的工作表
在我的情况下不起作用
对于 select 某些范围的纸张/或排除某些纸张/用于 PDF 打印,是否有任何更智能的选项?
添加一个临时表来保存您要打印的所有范围。
Option Explicit
Sub DPPtoPDF()
'Define ranges to print out
Dim wb As Workbook
Dim wsPDF As Worksheet, ws As Worksheet
Dim rngPDF As Range
Dim n As Long, i As Integer
' define ranges
Dim rngToPrint(2) As Range
Set wb = ThisWorkbook
Set rngToPrint(1) = wb.Sheets("Sheet1").Range("A1:E5")
Set rngToPrint(2) = wb.Sheets("Sheet2").Range("C3:F200")
Set wb = ThisWorkbook
' create sheet to hold ranges
Set wsPDF = wb.Sheets.Add
wsPDF.Name = "PDF Output"
Set rngPDF = wsPDF.Range("A1")
' copy range to temporary sheet
For i = 1 To UBound(rngToPrint)
n = rngToPrint(i).Rows.Count
rngToPrint(i).Copy rngPDF
Set rngPDF = rngPDF.Offset(n + 1)
Next
' print to PDF
wsPDF.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & ThisWorkbook.Name, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
' delete temporary sheet
Application.DisplayAlerts = False
wsPDF.Delete
Application.DisplayAlerts = True
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.