Excel 文档将要展开时导出为PDF

Excel 文档将要展开时导出为PDF,excel,vba,Excel,Vba,我必须知道如何将文档导出为PDF格式 这是一个很好的解决方案,但它只涉及静态文件 我试过这样的方法: Sub SavetoPDF() ThisWorkbook.Sheets(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

我必须知道如何将文档导出为PDF格式

这是一个很好的解决方案,但它只涉及静态文件

我试过这样的方法:

    Sub SavetoPDF()

    ThisWorkbook.Sheets(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)).Select

     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & ThisWorkbook.Name, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True


   End Sub
但是在阵列中有20张这样的照片是一件很尴尬的事情

最重要的是,当我放入25张表单(而我的文档只有23张)时,我发现脚本超出了范围

这是否意味着,如果我在文档中插入一些新的表单,那么最后的一些表单将被省略


解决方案是否允许将完整的Excel文档保存为PDF格式(VBA格式),以便灵活的工作表数量?

如果我理解正确,您的问题是希望选择文档中的所有工作表?这可以通过使用
ThisWorkbook.Sheets来完成。选择
而不是您的数组。除非您只需要特定的工作表,或者您想跳过某些工作表,否则不需要数组。另外,请注意,使用select开始是不好的形式,您可以使用
Thisworkbook.sheets.ExportAsFixedFormat
等完全解决此问题。您好,非常感谢。你知道它在单色的情况下是如何工作的吗?单色不应该影响这个代码。但是如果你想根据颜色来选择纸张,这是一个完全不同的问题。这可能需要使用循环和if语句以及不同的数组来完成。最好用你最新的要求开始一个新问题。如果你有25张表格,并且想要将其中23张pdf格式。在代码中,隐藏PDF中不需要的两张工作表,然后将整个工作簿放入PDF,最后取消隐藏工作表。