文科生自学VBA-批量转换指定Excel数据为PDF文件

--教育不是灌输,而是点燃火焰,学习编程成就更好的自己--

微软公司Office软件在商业办公领域一直占据着主流和主导地位,其中Excel在数据处理和分析领域有着强大的影响力,大部分人在经历几年职场历练后可以熟练的使用Excel函数透视表功能,基本可以轻松完成绝大多数工作和任务。但实际上Office的强大和独特之处还在于VBA,因为VBA能够胜任好多个性化二次开发,减少重复机械劳动从而实现办公自动化,开发效率高且开发周期短,尤其对于Excel重度使用者来说会了VBA简直就是如虎添翼啊!!!(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学VBA遇到的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启示和鼓励,同时愿意结交更多大神交流有助提升自己的水平。

使用Excel过程中有时需要把处理好的数据结果另存为PDF文件,然后发送给相关客户或者同事,而且有时需要把多个Sheet数据都要转换为PDF格式文件,如何通过VBA来实现批量转换指定数据为PDF格式文件并保存呢?接下来通过一个实际案例来展示:

截图1:

文科生自学VBA-批量转换指定Excel数据为PDF文件

截图2:

文科生自学VBA-批量转换指定Excel数据为PDF文件

截图3:

文科生自学VBA-批量转换指定Excel数据为PDF文件

其他截图省略

如上所示:

某EXCEL文件中有多个Sheet数据,需要找到Sheet名字前三个字符为"PDF"且后面接一位数字字符的所有Sheet(即是:PDF1,PDF2,PDF3和PDF4),将其数据内容转换成为PDF格式文件保存起来,对应的文件名就是抬头名称,如“西北区域-产品销售情况”。

如何解决这个问题呢?首先看看VBA如何把Excel数据另存为PDF文件:

文科生自学VBA-批量转换指定Excel数据为PDF文件

运行代码后的效果如下:

文科生自学VBA-批量转换指定Excel数据为PDF文件

核心代码是:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets("PDF").Range("B3") & ".pdf" '核心代码

有了解决问题的核心代码就好办了,接下来可以考虑把这个代码封装成一个自定义函数,方便在遍历循环所有Sheet时方便判断和调用,如下:

Function SaveAsPDF(X) '把Excel的Sheet数据另存为PDF格式文件,写成自定义函数方便后续调用
Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets(X).Range("B3") & ".pdf"
Application.ScreenUpdating = True
End Function

下面直接搞定这个问题吧,如下:

文科生自学VBA-批量转换指定Excel数据为PDF文件

运行后的结果如下:

文科生自学VBA-批量转换指定Excel数据为PDF文件

怎么样!VBA是不是很给力!!!

代码汇总如下:

Sub SaveExcelAsPDF() '把Excel的Sheet数据另存为PDF格式文件
Application.ScreenUpdating = False
Sheets("PDF").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets("PDF").Range("B3") & ".pdf" '核心代码
Application.ScreenUpdating = True
End Sub

Function SaveAsPDF(X) '把Excel的Sheet数据另存为PDF格式文件,写成自定义函数方便后续调用
Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets(X).Range("B3") & ".pdf"
Application.ScreenUpdating = True
End Function

Sub Get_PDF_FM_Excel() '通过循环判断批量生成对应的PDF格式文件
Application.ScreenUpdating = False
For Each sht In Worksheets '遍历循环每个Sheets
    If VBA.Left(sht.Name(), 3) = "PDF" And Len(sht.Name()) = 4 Then '通过判断Sheet名字前三字符为PDF且字符长度为4来选择指定的Sheet
        Debug.Print sht.Name()
        SaveAsPDF (sht.Name()) '通过SaveAsPDF自定义函数来实现批量生成PDF格式文件
    End If
Next
Application.ScreenUpdating = True
End Sub

通过今天的案例讲解,大家学会后完全可以根据自己的实际需求来调整,这样就能够制作出各种高效的办公自动化神器,例如批量生成发票和单据等小工具,感觉马上飞起来了!!赶紧告别低效地加班和重复劳动吧!!

END

我为人人,人人为我!!欢迎大家关注,点赞和转发!!!

~~人生不是赛场,梦想不容退场~~不断努力学习蜕变出一个更好的自己,不断分享学习路上的收获和感悟帮助他人成就自己!!!

展开阅读全文

页面更新:2024-04-06

标签:时方   飞起   微软公司   文件   数据   遍历   办公自动化   截图   批量   格式文件   函数   字符   成就   核心   代码   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top