admin 管理员组

文章数量: 1184232


2024年3月9日发(作者:接口类型和通讯协议)

Excel 2010和Excel 2007可以将Excel工作簿另存为PDF格式文件,但手工的方法每次只能转换一个工作簿,要转换多个工作簿就显得有些繁琐。如果没有批量转换软件,在Excel 2010和Excel 2007中,利用VBA代码也可以轻松实现将Excel工作簿批量转换为PDF,方法如下:

1.按Alt+F11,打开VBA编辑器。

2.在右侧代码窗口中输入下列代码:

Sub BatchConvertWorkBookToPDF()

yAlerts = False

Updating = False

Dim fDialog As FileDialog

Set fDialog = alog(msoFileDialogFilePicker)

Dim vrtSelectedItem As Variant

Dim wkBook As Workbook

Dim showFolder As Boolean

showFolder = False

With fDialog

. "Excel文件", "*.xls; *.xlsx; *.xlsm", 1

If .Show = -1 Then

For Each vrtSelectedItem In .SelectedItems

'如果选择了本工作簿则跳过

If InStrRev(vrtSelectedItem, ) = 0

Then

On Error Resume Next

Set wkBook =

(vrtSelectedItem, ReadOnly:=True, Password:="")

'跳过设置打开密码的工作簿

If Not wkBook Is Nothing Then

'跳过隐藏的工作簿

If Windows().Visible = True

Then

showFolder = True

'转换开始

AsFixedFormat

Type:=xlTypePDF, Filename:= _

Left(vrtSelectedItem,

InStrRev(vrtSelectedItem, ".") - 1) & ".pdf" _

, Quality:=xlQualityMinimum,

IncludeDocProperties:=False, IgnorePrintAreas _

:=True, OpenAfterPublish:=False

, savechanges = False

Else

, savechanges = False

End If

End If

End If

Next vrtSelectedItem

If showFolder Then Call Shell(" " &

Left(edItems(1), _

InStrRev(edItems(1), "")),

vbMaximizedFocus)

End If

End With

Set fDialog = Nothing

Updating = True

yAlerts = True

End Sub

3.将需要转换的Excel工作簿复制到某个文件夹中。

4.关闭VBA编辑器返回Excel界面。按Alt+F8打开“宏”对话框,执行“BatchConvertWorkBookToPDF”宏。

5.在弹出的“浏览”对话框中选择包含要转换工作簿的文件夹,选择所有要转换的工作簿,单击“打开”按钮即可开始转换。

说明:

1.已转换的PDF文件位于原工作簿所在的文件夹中,转换完成后会自动打开该文件夹。

2.不能转换设置了打开密码的工作簿、隐藏的工作簿、隐藏的工作表和包含上述VBA代码的工作簿。

3.转换的文件类型为“*.xls”、“*.xlsx”、“*.xlsm”。如果要转换其他类型的工作簿,可在代码中添加文件类型。

4.如果要转换的工作簿具有相同的名称和不同的后缀,如“”和“”,则先转换的PDF文件会被覆盖。

2007必需安装用于 2007 Microsoft Office system 的“另存为

PDF 或 XPS”加载项


本文标签: 工作 转换 打开 代码 文件夹