VBA代码大全003:如何用vba把excel工作表导出为pdf文件?

从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

       

发表评论