将多张纸张保存为.pdf

我有一个报告电子表格,可以从数据库中获取一些数据,并形成三张总结报告信息。 我想从命令行自动运行电子表格,并自动将所有三个报告表格保存为PDF文件。

起初,我以为我可以在工作表上有一个VBAmacros,通过一系列“print as PDF”做到这一点,但是这需要一个中间的交互式对话框来指定输出文件名。 然后我发现我可以保存为pdf,而macros可以设置输出文件的名称。 然而,这会创build三个单独的文件,然后我必须稍后将它们合并到一起。

(单独保存为pdf只保存一张,其他保存模式似乎保存整个工作簿。)

是的,以后有一些工具可以合并这三个文件,但是我想知道是否有一些简单的方法可以让Excel将多个工作表保存为一个pdf文件。

我现在打印一系列的东西,如:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ... 

我可以做一些像(伪代码)一样的语句:

 ThisWorkbook.Sheets(1,2,3,4).ExportAsFixedFormat Type:=xlTypePDF, ... 

首先select要合并的图纸:

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

与Tim的答案类似 – 但对2007年的检查(默认情况下未安装PDF导出):

 Public Sub subCreatePDF()

    如果不是IsPDFLibraryInstalled那么
         '更好地显示这是一个适当的链接用户表单:
         MsgBox“请安装Addin以导出为PDF格式,您可以在http://www.microsoft.com/downloads/details.aspx?familyid=4d951911-3e7e-4ae6-b059-a2e79ed87041上find它。 
        退出小组
    万一

     ActiveSheet.ExportAsFixedFormattypes:= xlTypePDF,_
        文件名:= ActiveWorkbook.Path&Application.PathSeparator&_
         ActiveSheet.Name&“für”&Range(“SelectedName”)。Value&“.pdf”,_
        质量:= xlQualityStandard,IncludeDocProperties:= True,_
         IgnorePrintAreas:= False,OpenAfterPublish:= True
结束小组

私有函数IsPDFLibraryInstalled()作为布尔值
 “信贷去Ron DeBruin(http://www.rondebruin.nl/pdf.htm)
     IsPDFLibraryInstalled = _
         (Dir(Environ(“commonprogramfiles”)&_
         “\ Microsoft Shared \ OFFICE”&_
        格式(Val(Application.Version),“00”)&__
         “\ EXP_PDF.DLL”)<>“”)
结束function

我build议在导出为PDF后添加以下行:

 ThisWorkbook.Sheets("Sheet1").Select 

(例如, Sheet1是您希望在之后活动的单张纸)

将多张纸张保留在选定状态可能会导致执行某些代码时出现问题。 (例如,当多张纸被主动select时,解除保护function不能正常工作。)

在Excel 2013中,只需select多个工作表并执行“另存为”,然后selectPDF作为文件types。 点击保存后,多个页面将以PDF格式打开。