将多个工作表保存为一个PDF?

我试图从工作簿中提取工作表的select; 其名称中包含string“STRINGY”的工作表,并将这些工作表导出为一个pdf 。 下面的代码创build一个空白pdf。

Sub Test() Application.CutCopyMode = False For Each sht In ActiveWorkbook.Worksheets If InStr(1, sht.Name, "STRINGY") > 0 Then Sheets(sht.Name).Select Replace:=False End If Next sht Selection.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="C:\File.pdf" 

任何帮助将不胜感激。

你是沿着正确的路线,但没有正确使用Selection 。 以下应该做你需要的:

 Option Explicit Sub Test() Dim arrSheets() As String Dim sht As Worksheet Dim i As Integer i = 0 For Each sht In ActiveWorkbook.Worksheets If InStr(1, sht.Name, "STRINGY") > 0 Then ReDim Preserve arrSheets(i) arrSheets(i) = sht.Name i = i + 1 End If Next sht ThisWorkbook.Sheets(arrSheets).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="C:\File.pdf", _ OpenAfterPublish:=True End Sub 

基本上,您需要将其名称中包含您的searchstring的工作表添加到数组中,并同时将其全部选中。 然后使用该选项作为导出为PDF的基础。

我添加了OpenAfterPublish导出选项,以便在导出后在PDF阅读器中打开该文件; 这不是一个要求。

上述代码已成功通过Excel 2010testing,但不能肯定它可以在Excel 2007或以前版本中使用。 请注意, 如果PDF加载项当前未安装,则会发生错误。 如果是这种情况,可以在http://www.microsoft.com/downloads/details.aspx?familyid=4d951911-3e7e-4ae6-b059-a2e79ed87041find它。