【分享成果,随喜正能量】 脾气越大身体越差,脾气越温福报越深;声音越大修养越差,声音越柔德行越厚;性子越急智慧越低,性子越稳智慧越深;妻子越贤夫祸越少,丈夫越仁妻子越美;子女越孝父母越安,父母越慈子孙越贤。做人要方,做事需圆;小事糊涂,大事清楚;小胜靠智,大胜靠德;能忍是聪,会让是明;凡事看开,一生幸福。。
NZ02 VBA读取PDF使用说明PDF文件大家并不陌生,很多资料的传递都是依靠这种文件格式进行,如一些报表,合同书,甚至个人的一些资料。这个格式的文件有着自己的特点,不易被修改,但是我们的一些数据信息往往来自于这类文件,那么怎么利用VBA技术读取把这类文件的信息呢?这个应用就是实现这个目的。提供给学员7项功能:
功能1:在指定路径下的PDF中查找字符串;
功能2:将指定路径下的PDF文件拆分成若干个文件,每个文件的页数是指定的;
功能3:将某个文件夹下的多个pdf文件合并,
功能4:提取pdf文件中表的数据,表中不能有合并单元格,
功能5:提取PDF中某个段落数据到EXCEL
功能6 :提取pdf文件中表的数据,表中可以有合并单元格
功能7:将文件夹下的多个PDF转变成WORD文件,并放在同路径下的WORD文件夹下(事前建立)
一 准备工作当你得到这个应用技术后,可以看到两个文件夹及一个使用的文档说明。
1 我们首先打开“adobeacrobatXpro_setup”文件夹,安装一下ADODB,这个文件夹下有安装的说明,如果按照过程出现异常,按照这个说明进行处理即可。安装ADODB的目的是要获得VBA中利用的控件。
2 安装好后,我们打开“程序及示例文件文件”这个文件夹,这个文件如下截图:
这个文件夹中包含两个文件夹和两个文件,其中“word”文件夹是空的,用于文档装换后的目的地址;“测试文档”中包含我们可以用于测试各个功能的PDF文件;PDFChangeTo.xlam文件是加载项文件,是整个文件的技术核心部分,如果您得到的是不开放源码的资料,您是无法打开这个文件并看到代码的,如果您得到的是开放源码的资料,可以输入密码“123456789”打开这个加载项,并看到里面的代码,但是建议您不要轻易打开。TestPDFChangeTo.xlsm文件是我们应用这个加载项的程序,提供了应用的界面,我们打开这个文件,截图如下:
以上的界面截图提供了各项功能的运行按钮及要提供的输入参数。您只要在这个界面中按照要求输入相应的参数就可以了。
二 功能1:在指定路径下的PDF中查找字符串测试参数输入,在D2单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E2单元格中输入文件名search;在F2单元格中输入我们要查找的字符。
点击运行按钮mynzTestA.
结果:
三 功能2:拆分PDF文件测试参数输入,在D4单元格中输入路径地址:D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档;在E4单元格中输入文件名”Fiddler调试”;在F4单元格中输入我们要形成每个文件的页数,这里我们选择10。
点击运行按钮mynzTestB.
结果:
以上我们看到,已经将”Fiddler调试文件,分隔成每10页一个文件,运行也是非常的快。
四 功能3:将某个文件夹下的多个pdf文件合并测试参数输入,在D6单元格中输入路径地址:D:\VBA笔记\VBA_PDF\程序及示例文件文件;在E6单元格中输入文件名”myMergePDF”;在F6单元格为空,没有参数。如下截图:
点击运行按钮mynzTestC.
结果:
以上结果,已经将“search文件”和“文章”文件合并到“myMergePDF”文件。当然,你也可以在这个文件夹下放入多个PDF文件。
五 功能4:提取pdf文件中表数据(表中不能有合并单元格)测试参数输入:在D8单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E8单元格中输入文件名”myPDF(无合并单元格)”;在F8单元格为空,没有参数。如下截图:
点击运行按钮mynzTestD.
结果:
程序运行后,会形成一个新的文件,把表格中的内容放到新的工作簿文件中。
六 功能5:提取PDF中某个段落数据到EXCEL测试参数输入:在D10单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E10单元格中输入文件名“文章”;在F8单元格输入“要提取的段落号”这里我们输入1。如下截图:
点击运行按钮mynzTestE.
结果:
程序运行后,会形成一个新的文件,把PDF文件“文章”中的第一段内容放到新的工作簿文件中。
七 功能6:提取pdf文件中表的数据(可以有合并单元格)测试参数输入:在D12单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E12单元格中输入文件名“myPDF(有合并单元格)”;在F12单元格输入表间隔参数,是指两个表的间隔行数,这里用的是3。如下截图:
点击运行按钮mynzTestF.
结果:
程序运行后,会形成一个新的文件,把PDF各个表格中的内容放到新的工作簿文件中。
八 功能7:将文件夹下的多个PDF转变成WORD文件测试参数输入:在D14单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件”;没有其他参数,如下截图:
点击运行按钮mynzTestG.
结果:
程序运行后,会在word文件夹中形成相应新的word文件.
九 技术总结这个应用中,我们大体上解决了VBA读取PDF文件中常见的七大问题:
功能1:在指定路径下的PDF中查找字符串;
功能2:将指定路径下的PDF文件拆分成若干个文件,每个文件的页数是指定的;
功能3:将某个文件夹下的多个pdf文件合并,
功能4:提取pdf文件中表的数据,表中不能有合并单元格,
功能5:提取PDF中某个段落数据到EXCEL
功能6 :提取pdf文件中表的数据,表中可以有合并单元格
功能7:将文件夹下的多个PDF转变成WORD文件,并放在同路径下的WORD文件夹下(事前建立)
但是,由于有些PDF的文件完全完美的读取对于VBA而言是非常困难的,还不能够完全实现,也希望学员的技术在我的基础上有所突破,
【分享成果,随喜正能量】
下面是NZ系列VBA应用工具: