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

--教育不是灌输,而是点燃火焰,学习编程成就更好的自己--
微软公司Office软件在商业办公领域一直占据着主流和主导地位,其中Excel在数据处理和分析领域有着强大的影响力 , 大部分人在经历几年职场历练后可以熟练的使用Excel函数透视表功能 , 基本可以轻松完成绝大多数工作和任务 。但实际上Office的强大和独特之处还在于VBA,因为VBA能够胜任好多个性化二次开发,减少重复机械劳动从而实现办公自动化,开发效率高且开发周期短,尤其对于Excel重度使用者来说会了VBA简直就是如虎添翼?。。。?b>(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学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 = FalseActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets(X).Range("B3") & ".pdf"Application.ScreenUpdating = TrueEnd Function
下面直接搞定这个问题吧,如下:
文科生自学VBA-批量转换指定Excel数据为PDF文件

运行后的结果如下:
文科生自学VBA-批量转换指定Excel数据为PDF文件

怎么样!VBA是不是很给力?。。?
代码汇总如下:
Sub SaveExcelAsPDF() '把Excel的Sheet数据另存为PDF格式文件Application.ScreenUpdating = FalseSheets("PDF").SelectActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets("PDF").Range("B3") & ".pdf" '核心代码Application.ScreenUpdating = TrueEnd SubFunction SaveAsPDF(X) '把Excel的Sheet数据另存为PDF格式文件,写成自定义函数方便后续调用Application.ScreenUpdating = FalseActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & Sheets(X).Range("B3") & ".pdf"Application.ScreenUpdating = TrueEnd FunctionSub Get_PDF_FM_Excel() '通过循环判断批量生成对应的PDF格式文件Application.ScreenUpdating = FalseFor Each sht In Worksheets '遍历循环每个SheetsIf VBA.Left(sht.Name(), 3) = "PDF" And Len(sht.Name()) = 4 Then '通过判断Sheet名字前三字符为PDF且字符长度为4来选择指定的SheetDebug.Print sht.Name()SaveAsPDF (sht.Name()) '通过SaveAsPDF自定义函数来实现批量生成PDF格式文件End IfNextApplication.ScreenUpdating = TrueEnd Sub
通过今天的案例讲解 , 大家学会后完全可以根据自己的实际需求来调整,这样就能够制作出各种高效的办公自动化神器,例如批量生成发票和单据等小工具,感觉马上飞起来了?。「辖舾姹鸬托У丶影嗪椭馗蠢投桑 。?
END
我为人人,人人为我?。』队蠹夜刈ⅲ阍藓妥ⅲ 。。?/b>
【文科生自学VBA-批量转换指定Excel数据为PDF文件】~~人生不是赛?。?梦想不容退场~~不断努力学习蜕变出一个更好的自己,不断分享学习路上的收获和感悟帮助他人成就自己?。。?/b>

相关经验推荐