在office 2007版本以后,微软新增了将excel文件发布转化为pdf格式文档的功能。
操作上可以单击“文件”选项卡,然后单击“导出”命令,可以选择将excel 工作簿导出为PDF文档。
在vba中,也提供了ExportAsFixedFormat方法可以将excel的Workbook 、Sheet 、Chart 、 Range等 对象导出为PDF格式。
它的语法如下:
|
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类的指针。 |
如以下代码将把工作簿中的所有工作表逐一发布为PDF格式的文件:
|
Sub QQ1722187970() '以下代码把工作表逐一转换为PDF文件 Dim oWK As Worksheet Dim sPath As String sPath = Excel.ThisWorkbook.Path For Each oWK In Excel.ThisWorkbook.Worksheets sName = sPath & "\" & oWK.Name & ".pdf" oWK.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sName Next End Sub |
|