如何利用VBA批量转换Excel工作簿为PDF
发布时间:2022-04-11 21:55:43
Excel 2010和Excel 2007可以将Excel工作簿另存为PDF格式文件,但手工的方法每次只能转换一个工作簿,要转换多个工作簿就显得有些繁琐。如果没有批量转换软件,在Excel 2010和Excel 2007中,利用VBA代码也可以轻松实现将Excel工作簿批量转换为PDF,方法如下:
1.按Alt+F11,打开VBA编辑器。
2.在右侧代码窗口中输入下列代码:
Sub BatchConvertWorkBookToPDF()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
Dim vrtSelectedItem As Variant
Dim wkBook As Workbook
Dim showFolder As Boolean
showFolder = False
With fDialog
.Filters.Add "Excel文件", "*.xls; *.xlsx; *.xlsm", 1
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
'如果选择了本工作簿则跳过
If InStrRev(vrtSelectedItem, ThisWorkbook.Name) = 0 Then
On Error Resume Next
Set wkBook = Application.Workbooks.Open(vrtSelectedItem, ReadOnly:=True, Password:="")
'跳过设置打开密码的工作簿
If Not wkBook Is Nothing Then
'跳过隐藏的工作簿
If Windows(wkBook.Name).Visible = True Then
showFolder = True
'转换开始
wkBook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Left(vrtSelectedItem, InStrRev(vrtSelectedItem, ".") - 1) & ".pdf" _
, Quality:=xlQualityMinimum, IncludeDocProperties:=False, IgnorePrintAreas _
:=True, OpenAfterPublish:=False
wkBook.Close , savechanges = False
Else
wkBook.Close , savechanges = False
End If
End If
End If
Next vrtSelectedItem
If showFolder Then Call Shell("explorer.exe " & Left(fDialog.SelectedItems(1), _
InStrRev(fDialog.SelectedItems(1), "")), vbMaximizedFocus)
End If
End With
Set fDialog = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
3.将需要转换的Excel工作簿复制到某个文件夹中。
4.关闭VBA编辑器返回Excel界面。按Alt+F8打开“宏”对话框,执行“BatchConvertWorkBookToPDF”宏。
5.在弹出的“浏览”对话框中选择包含要转换工作簿的文件夹,选择所有要转换的工作簿,单击“打开”按钮即可开始转换。
说明:
1.已转换的PDF文件位于原工作簿所在的文件夹中,转换完成后会自动打开该文件夹。
2.不能转换设置了打开密码的工作簿、隐藏的工作簿、隐藏的工作表和包含上述VBA代码的工作簿。
3.转换的文件类型为“*.xls”、“*.xlsx”、“*.xlsm”。如果要转换其他类型的工作簿,可在代码中添加文件类型。
4.如果要转换的工作簿具有相同的名称和不同的后缀,如“Book1.xls”和“Book1.xlsx”,则先转换的PDF文件会被覆盖。
5.Excel2007必需安装用于 2007 Microsoft Office system 的“另存为 PDF 或 XPS”加载项(见本站《如何将Excel工作簿保存为PDF格式文件》一文)。
单击此处打开xlsm格式源文件下载页面。
猜你喜欢
- 当我们使用Win 10操作系统时,无论是台式机还是笔记本电脑,如果我们有问题就不能启动,就需要启动安全模式。对于这个问题,编辑认为他可以连续
- Excel内置照相机在哪里打开?Excel照相机有什么功能?Excel为什么要使用内置照相机?Excel内置一个照相机,不过不在功能区的工具
- Excel内置了两种按笔画和字母排序文本的方法。假设我们只想将同类数据放在一起,并根据某个定义的基础对它们进行排序,那么问题就来了。如何打破
- 首先我们在制作文档的时候为了区分段落经常会给段落加上空格进行区分,其实我们可以删除这个段落,这样对于长篇的文档来说可以节省很多空间。1.打开
- 我在使用win10操作系统的时候,有些同学因为工作需要要在电脑上用友u8但是不知道怎么操作,对于这个问题我们觉得可以在网上先下载一下用友u8
- 对于一些新手朋友来说,Excel中的自动换行和强制换行还不清楚。所以今天,小王先生将告诉你一些关于在Excel中自动换行和手动换行的知识!E
- Excel 2010提供了许多内置数字格式,但如果还是找不到你想要的,那你也可以自定义内置的数字格式来创建自己的数字格式。下面就跟小编一起看
- Excel中经常遇到内容打印不完整的问题,内容打印不完整具体该如何解决呢?下面是小编带来的关于excel表格内容打印不完整的方法,欢迎大家来
- word软件是office办公软件中的一部分,一出现就受到了很多用户的喜欢,这款办公软件是用户用来编辑文本内容的软件,一般用户会用来编辑论文
- 一个工作簿中可能有多个工作表,由于各种原因行高不一样。要使行高一样,必须要知道行高是多少。步骤第一步:使各工作表的行高一样第二步:随便选中工
- 我们在excel中经常使用批注功能来进行注释,那么,这个功能时如何进行插入和删除的呢?下面随小编一起来看看吧。Excel插入批注和删除批注的
- 介绍一下自动填充功能的使用方法。例如,在单元格 A2中输入1,在单元格 A3中输入2,然后同时选中单元格 A2和 A3并向下方拖拽复制,一直
- excel中填充柄位于选定区域右下角的小黑方块。当用鼠标指向填充柄时,鼠标的指针变为黑十字。在我们选择区域后,选择的区域四周的边框就会加粗,
- 许多小伙伴在办公学习的时候,经常会使用到虚拟机功能,而Win10系统自带就有虚拟机,无需再去下载第三方的虚拟机软件,那么我们要怎么使用呢?下
- Office 显示仅查看未授权先管理员权限进入cmd进入Office16文件夹cscript ospp.vbs /dstatus 命令进行查
- 中国汉字多种多样,不可能每个人都认识所有的字,尤其是一些文化教育程度相对较低的地方,很多常用字都不会读,这样就给交流带来了极 * 烦,对于这样
- 在Word2010文档中,用户可以设置当在同一文档内粘贴内容时所使用的格式,包括“保留源格式”、“合并格式”和“仅保留文本”三种粘贴选项。在
- 对于苹果用户来说,如果家附近有 Apple Store 直营店,则可以参加 Today at Apple 活动,免费学习 iPhone、iP
- excel怎么利用运算将文本格式转换为数据格式?excel中很多时候数据是文本格式的,不好操作,想将文本格式转换成数据模式,该怎么办呢?今天
- 1、首先打开word,点击文件选项。 2、点击选项,会弹出word选项界面。 3、选择自