我需要将多个Excel工作表导出到一个PDF文件中。我目前正在使用以下内容:
Sub CreatePDF()
Sheets("ReportPage1").Select
Range("Print_Area").Select
Sheets("ReportPage2").Select
Range("Print_Area").Select
Sheets("ReportPage3").Select
Range("Print_Area").Select
ThisWorkbook.Sheets(Array("ReportPage1", "ReportPage2", "ReportPage3")).Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:="C:\temp\temp.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Sheets("ReportPage1").Select
Range("A1").Select
End Sub
问题是所有打印区域都不同。生成的PDF使用ReportPage1中所有页面的打印区域的范围地址。
我在Excel之外尝试过,在VBA之外,当我选择了例如ReportPage1!A1:E30和ReportPage2!A1:F70时,当我选择两个工作表时,它会将所选范围更改为ReportPage1!A1: E30和ReportPage2!A1:E30。
任何想法如何解决这个问题?
非常感谢任何帮助。
答案 0 :(得分:5)
好的,我解决了。如果我没有在特定页面上选择任何范围,它将自动获得每张纸的Print_Area范围。
Sub CreatePDF()
ThisWorkbook.Sheets(Array("ReportPage1", "ReportPage2", "ReportPage3")).Select
Sheets("ReportPage1").Activate
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:="C:\temp\temp.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Sheets("ReportPage1").Select
Range("A1").Select
End Sub