相关文章推荐
神勇威武的消炎药  ·  excellvba引用计算机用户名,EXCE ...·  4 月前    · 
知识渊博的紫菜  ·  Excel 效能 - 優化效能阻礙的秘訣 ...·  4 月前    · 
迷茫的马克杯  ·  从VBA中的范围中删除特殊字符开发者社区·  1 月前    · 
知识渊博的热带鱼  ·  在 Power BI Desktop ...·  1 月前    · 
性感的沙滩裤  ·  SendKeys statement ...·  1 周前    · 
冲动的鸵鸟  ·  Help with ABBA ...·  2 天前    · 
斯文的杯子  ·  課程資訊 | 機械工程系·  9 月前    · 
憨厚的感冒药  ·  河南师范大学·  1 年前    · 
儒雅的投影仪  ·  手机exagear运行哥布林巢穴3·  1 年前    · 
有情有义的啄木鸟  ·  如何在Excel中解析大量的Json数据?·  2 年前    · 
Code  ›  VBA: Excel文件批量转化为pdf开发者社区
pdf 电子表格 vba
https://cloud.tencent.com/developer/article/2113364
谦虚好学的香槟
2 年前
Exploring
0 篇文章

VBA: Excel文件批量转化为pdf

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
Exploring
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 数据处理与编程实践 > VBA: Excel文件批量转化为pdf

VBA: Excel文件批量转化为pdf

作者头像
Exploring
发布 于 2022-09-20 14:33:57
2.1K 0
发布 于 2022-09-20 14:33:57
举报

文章背景: 测试仪器的数据有些会以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)
        MsgBox "默认路径的pdf文件夹已存在,请确认!"
        Exit Sub
    End If
    '2 选择需要转化的文件夹路径
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    With fd
        If .Show = -1 Then
            t = .SelectedItems(1)
            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()
    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")
 
推荐文章
神勇威武的消炎药  ·  excellvba引用计算机用户名,EXCEL VBA 取当前登录 用户名的多种实现方法
4 月前
知识渊博的紫菜  ·  Excel 效能 - 優化效能阻礙的秘訣 | Microsoft Learn
4 月前
迷茫的马克杯  ·  从VBA中的范围中删除特殊字符开发者社区
1 月前
知识渊博的热带鱼  ·  在 Power BI Desktop 中使用自訂格式字串 - Power BI | Microsoft Learn
1 月前
性感的沙滩裤  ·  SendKeys statement (VBA) | Microsoft Learn
1 周前
冲动的鸵鸟  ·  Help with ABBA annotations in QuPath - Usage & Issues - Image.sc Forum
2 天前
斯文的杯子  ·  課程資訊 | 機械工程系
9 月前
憨厚的感冒药  ·  河南师范大学
1 年前
儒雅的投影仪  ·  手机exagear运行哥布林巢穴3
1 年前
有情有义的啄木鸟  ·  如何在Excel中解析大量的Json数据?
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号