2016-05-15 186 views
1

即时尝试将多个工作表保存为单个pdf文件。
以下宏使用表名称,但它不适合我,因为我的表具有动态名称。正试图使用​​Sheets(1)寻址但没有工作。有人有什么主意吗?将多页保存为PDF

Sub export_to_pdf() 
    Sheets(Array("Configuration", "chart")).Copy 
    ActiveWorkbook.ExportAsFixedFormat _  
    Type:=xlTypePDF, _ 
    Filename:="filename.pdf", _  
    Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=False, _ 
    IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=True 
    ActiveWorkbook.Close (False) 
End Sub 
+0

https://stackoverflow.com/questions/14404650/save-multiple-sheets-to-pdf/14407986#14407986 –

回答

3

使用

Sheets(1).ExportAsFixedFormat _ 
      Type:=xlTypePDF, _ 
      Filename:="filename.pdf", _ 
      Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=False, _ 
      IgnorePrintAreas:=False, _ 
      OpenAfterPublish:=True 

,或者如果你有更多的

Sheets(Array(1, 2, 5)).Copy 

ActiveWorkbook.ExportAsFixedFormat _ 
       Type:=xlTypePDF, _ 
       Filename:="filename.pdf", _ 
       Quality:=xlQualityStandard, _ 
       IncludeDocProperties:=False, _ 
       IgnorePrintAreas:=False, _ 
       OpenAfterPublish:=True 

ActiveWorkbook.Close (False) 
+0

如此简单, 谢谢! – Pythonist

+0

欢迎您 – user3598756

0

你的程序代码对我的作品有轻微变化表明这里-下。

Sub export_to_pdf() 
    Sheets(Array("Sheet1", "Sheet2")).Copy 'Change to your sheets 
    ActiveWorkbook.ExportAsFixedFormat _ 
    Type:=xlTypePDF, _ 
    Filename:="filename.pdf", _ 
    Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, _ 'changed to True 
    IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=True 
    ActiveWorkbook.Close (False) 
End Sub 

在这种情况下,我设置参考Microsoft Word Object LibraryToolsReference

+0

您如何修改此代码以使用用户在运行Sub之前拥有'Selected'的工作表? –

+0

@加里的学生我分析了我的样本数据上的代码,并将其更改为sheet1和sheet2。这适用于我所指示的。但是,我很抱歉,我误解了OP的要求。这是他想要选择具有动态名称的工作表。我想撤回我的答案,但我不知道它是如何完成的。 – skkakkar

+0

**请不要删除这个答案.....我只是问一个问题!**答案可能是O.K.为Wariat ....... –