Excel VBA导出选定表格为PDF

我正在使用下面的代码将所选工作表从Excel 2010导出到一个PDF文件中…

ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\temp.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True 

我的问题是,它只输出第一张。 有任何想法吗?

一旦select了一组工作表,您可以使用select

考虑:

 Sub luxation() ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select Selection.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\TestFolder\temp.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True End Sub 

编辑#1:

进一步的testing发现,这种技术取决于在每个工作表上select的一组单元格。 要获得全面的输出,请使用如下所示的内容:

 Sub Macro1() Sheets("Sheet1").Activate ActiveSheet.UsedRange.Select Sheets("Sheet2").Activate ActiveSheet.UsedRange.Select Sheets("Sheet3").Activate ActiveSheet.UsedRange.Select ThisWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\James\Desktop\pdfmaker.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True End Sub 

我很混淆了这一点。 我也运行Excel 2010.我尝试使用以下命令将两张纸保存为一个PDF:

  ThisWorkbook.Sheets(Array(1,2)).Select **Selection**.ExportAsFixedFormat xlTypePDF, FileName & ".pdf", , , False 

但是我什么也没有,只有空白页。 它保存了两张纸,但是没有保存。 直到我用了:

  ThisWorkbook.Sheets(Array(1,2)).Select **ActiveSheet**.ExportAsFixedFormat xlTypePDF, FileName & ".pdf", , , False 

我有两张纸都有一个PDF文件。

我尝试使用select对话框中的select手动保存这两个页面,以保存我select的两个工作表,但得到空白页。 当我尝试活动表选项,我得到了我想要的。 当我将其logging为一个macros时,Excel在成功发布PDF时使用了ActiveSheet。 是什么赋予了?

这是我想出了,因为我有问题@ asp8811的答案(也许是我自己的困难)

'这将做的第一个2张在pdf中注意每个ws应该控制页面中断打印这是有点费劲'这将明确地把PDF在当前目录

 Sub luxation2() Dim Filename As String Filename = "temp201" Dim shtAry() ReDim shtAry(1) ' this is an array of length 2 For i = 1 To 2 shtAry(i - 1) = Sheets(i).Name Debug.Print Sheets(i).Name Next i Sheets(shtAry).Select Debug.Print ThisWorkbook.Path & "\" ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "/" & Filename & ".pdf", , , False End Sub