从office 2007版本开始,微软新增了将excel文件导出为pdf格式文档的功能。
操作上单击“文件”选项卡,然后单击“导出”命令,可以选择将excel 工作簿导出为PDF文档。
在vba中,ExportAsFixedFormat方法可以实现这个需求。
在vba界面中,通过“对象浏览器”中搜索ExportAsFixedFormat方法,可以看到如下图所示
ExportAsFixedFormat方法可以适用于excel的Workbook、Worksheet 、Chart 、 Range等对象。
也就是我们可以用这个方法将图表、工作表、工作簿或者单元格区域都导出为pdf格式。
ExportAsFixedFormat方法的语法如下:
expression . ExportAsFixedFormat( Type , Filename , Quality , IncludeDocProperties , IgnorePrintAreas , From , To , OpenAfterPublish , FixedFormatExtClassPtr )
参数说明如下:
参数名称 | 必需/可选 | 数据类型 | 参数说明 |
Type | 必需 | XlFixedFormatType | 可以是xlTypePDF或者xlTypeXPS。 |
Filename | 可选 | Variant | 要保存的文件名的完整路径。 |
Quality | 可选 | Variant | 发布的质量,可以是xlQualityStandard 或者 xlQualityMinimum。 |
IncludeDocProperties | 可选 | Variant | 是否保存文档属性。 |
IgnorePrintAreas | 可选 | Variant | 如果设置为True,则忽略打印区域的设置,如果为False,则按照打印区域的设置发布。 |
From | 可选 | Variant | 开始发布的页码,如果这个参数省略,从第一页开始发布。 |
To | 可选 | Variant | 结束发布的页码,如果这个参数省略,到最后一页结束发布。 |
OpenAfterPublish | 可选 | Variant | 如果设置为True,则发布完成后会打开文件,如果为False,则发布后不显示。 |
FixedFormatExtClassPtr | 可选 | Variant | 指向FixedFormatExt类的指针。 |
可以看出,它有很多参数,但是我们最经常使用的就是type和filename参数。
基于上述的知识,可以使用如下的代码批量将excel工作表导出为独立的pdf文件:
Sub 批量导出为pdf文件() 'QQ:1722187970,微信:xycgenius,公众号:水星excel Dim oWK As Worksheet Dim sPath As String sPath = Excel.ThisWorkbook.Path For Each oWK In Excel.ThisWorkbook.Worksheets '要保存的pdf的文件名称 sName = sPath & "\" & oWK.Name & ".pdf" oWK.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sName Next End Sub
上述代码是将工作表逐一导出为pdf文件,如果要将整个excel工作簿导出为一个pdf文件,则可以直接使用如下的代码:
Excel.ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sName
发表评论