将多个选定的工作表保存为一个PDF

我试图将多个选定的工作表保存到一个PDF中。

relativePath = wb.Path & "\" & sheetName & dateToday wb.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select ***This is the code in question***.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=relativePath, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True 

我已经尝试了两种方法来修改“这是有问题的代码”

  1. 我用“select”
    • 结果:空白文档以空格forms保存为PDF
  2. 我已经使用“ActveSheet”
    • 结果:文档仅以第一张纸张的forms保存为PDF
  3. 我已经使用'wb'(这是我目前的工作手册,只是为了testing它的工作原理)
    • 结果:正如预期的那样,文档被保存为PDF格式,其中包含所有表格,主要是testingPDFfunction是否正常工作

为了澄清,我希望的结果是sheet1,sheet2和sheet3被保存到相同的PDF(我有一堆在我的工作簿中的其他工作表,我会replace静态编码表名与数组,当我得到它的工作)

我已经从stackoverflow的答案得到解决scheme1和2,但都不为我工作的地方为他人工作。

任何人都可以请一些解决scheme或至less确定为什么这两件事情发生?

@drcoding

我已经在你上面提交的代码上工作了。 看来,而不是线路

 wb.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select 

你可以使用;

 Worksheets("Sheet1").Select (False) Worksheets("Sheet2").Select (False) Worksheets("Sheet3").Select (False) 

Sheet1,2,3可以replace为您以后决定提供给表单的名称。 另外请注意使用(false),以便在selectSheet 2后Sheet 1不会被取消select。

我在下面发布了类似的代码,你也可以使用它。 它通过工作表“文件索引”中的多个工作表名称进行循环,并能够转换该工作表中列I中选定的所有工作表“Y”。 它也使用类似的文件名,就像你在relativePath = wb.Path&“\”&sheetName&dateToday中select的那样。 如果您愿意,请尝试一下。

链接: http : //profit21.blogspot.in/2015/05/template-for-entity-financial-reporting.html

链接到文件: https : //www.dropbox.com/s/hi4wfxqz9ixiuby/Profit21.blogspot.in%20Limited%20-%20FY%202014-15%20-%20Accounts%20%26%20Reports%20%282015% 201_54%29.xltm?DL = 0

代码如下:

 Sub TEFAR_Convert_to_PDF() Dim Count As Integer Dim SheetsToPDF As Integer Application.ScreenUpdating = False Sheets("File Index").Select Cells(7, 9).Select For Count = 7 To 207 'If Worksheets("File Index").Cells(Count, 9) = "" Then GoTo outofi: If Worksheets("File Index").Cells(Count, 9) = "Y" Then '1 sheetnam = Worksheets("File Index").Cells(Count, 7) If IsError(sheetnam) = True Then sheetnam = "" If sheetnam <> "" Then '2 Worksheets(sheetnam).Select (False) End If '2 End If '1 Next Count outofi: PDF_filename = (Application.ActiveWorkbook.Path & "\" & Worksheets("Entity Master Data").Cells(3, 3) & " - " & Worksheets("Entity Master Data").Cells(13, 3) & " - " & "PDF Copy of Annual Report.pdf") ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDF_filename, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox ("File has been saved as PDF in " & PDF_filename & " .") Sheets("File Index").Select Application.ScreenUpdating = True End Sub 

干杯! EE