VBA: Excel文件批量转化为pdf
2023-06-13 09:12:58 时间
文章背景:测试仪器的数据有些会以Excel文件的形式保存,有时需要将测试数据转化为pdf格式。通过虚拟打印机(Adobe PDF)可以将excel文件输出为pdf文件。然而,当文件比较多时,这种操作比较费时。现在以批量转化Excel文件(.xlsx格式)为例,采用VBA编程,进行任务的实现。
在批量转化文件
的按钮中指定的宏命令为ConvertFiles。
在模块中添加的代码如下:
Option Explicit
Sub ConvertFiles()
'批量转化Excel文件为pdf
Dim filefolder As String
Dim fd As FileDialog, t As String, str As String, name As String
Application.ScreenUpdating = False
'获取默认路径
ChDrive ThisWorkbook.Worksheets("Sheet1").Range("B2").Value
ChDir ThisWorkbook.Worksheets("Sheet1").Range("B3").Value
'1 创建储存pdf文件的空文件夹
filefolder = ThisWorkbook.Worksheets("Sheet1").Range("B3").Value & "\pdf文件"
If Not isDirectory(filefolder) Then
VBA.MkDir (filefolder)
Else
MsgBox "默认路径的pdf文件夹已存在,请确认!"
Exit Sub
End If
'2 选择需要转化的文件夹路径
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
If .Show = -1 Then
t = .SelectedItems(1)
Else
MsgBox "未选取文件夹!"
Exit Sub
End If
End With
str = Dir(t & "\*.xlsx") ' 开始查找文件,格式为xlsx文件
Do While Len(str) > 0
Workbooks.Open (t & "\" & str)
name = CreateObject("Scripting.FileSystemobject").getextensionname(str) '获取文件的扩展名
ActiveWorkbook.Worksheets(1).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=filefolder & "\" & Replace(str, name, "pdf"), Quality:=xlQualityStandard, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Workbooks(str).Close False
str = Dir()
Loop
MsgBox "Done!"
Application.ScreenUpdating = False
Exit Sub
End Sub
Function isDirectory(pathName As String) As Boolean
'用于判断文件夹是否存在
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
isDirectory = fso.FolderExists(pathName)
End Function
运行效果展示
运行前:
运行后:
参考资料:
[1] VBA批量转化Excel文件为PDF(http://www.360doc.com/content/17/0909/07/30583536_685669139.shtml)
[2] 批量将Excel转化为PDF(https://blog.csdn.net/sinat_39901027/article/details/109412016)
[3] Workbook.ExportAsFixedFormat method (Excel)(https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.exportasfixedformat)
相关文章
- 将Excel转换为word_excel如何将横排变成竖排
- java导出文件前端获取到数据流后下载excel文档
- word,excel,ppt,pdf删除文档个人信息的方式
- 做excel,超实用的表格技巧,转起学技能!
- mysql导入excel文件_将Excel数据导入MySQL「建议收藏」
- 通过经纬度计算距离的公式是什么_excel经纬度计算距离公式
- PDF Reader Pro for mac(全能pdf阅读器)
- Excel公式技巧:根据不同区域大小生成相应数字
- 面试官问百万数据excel导出功能如何实现?
- 这个实现不对,要的是excel里面的高亮重复项效果
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(优化版)
- Springboot 读取模板excel信息内容并发送邮件, 并不是你想想中的那么简单
- java处理Excel文件—excel文件的创建,删除,写入,读取详解编程语言
- SAP ALV内嵌(In-place)Excel的问与答详解编程语言
- Linux集群技术:从安装到部署PDF手册(linux集群pdf)
- 极速提升业务效率:利用Excel快速导入Oracle数据库(excel数据导入oracle)
- 探索Linux的背后原理:一本指引 PDF(linux原理pdf)
- 步骤简单!轻松实现SQL Server导入Excel操作(sqlserver导入excel)
- Linux程序设计:从PDF到实践(linux程序pdf)
- 阅读器构建Linux下高效PDF阅读器(linux构建pdf)
- JSP动态输出Excel及中文乱码的解决
- ASP与Excel结合生成数据表和Chart图的代码