打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【跟我学Excel VBA】第七课:重磅!!Excel多文件汇总

昨天介绍了多工作表汇总,多文件汇总其实也是汇总每个文件中的工作表,所以,今天对工作表汇总部分将直接以代码呈现,如果大家对过程不熟悉的话,请参照昨天的课程!!


那么,今天将至少有两个学习重点:


1、怎样找到指定目录下的每一个文件?


2、怎样打开找到的每一个文件?


下面,我们来各个击破!


第一部分,找文件:


Dir 函数的简单应用:首先,我们来看以下代码




也许你会问,Dir函数有什么用,他的语法是怎样的。如果你看了我们的第一课,也许会明白,我们是以实战进行培训的,那些什么语法的见鬼去吧!!




代码解析:


1、表示某目录下的某文件,用字符串:【'd:\abc.gif'】表示,即盘符 文件夹 文件名(含后缀);

2、用Dir表示某文件是否存在时,会产生两个结果:如果文件存在,将显示文件的完整名(目录 文件全名<含后缀>);如果文件不存在,将返回一个空字符串;


有一个问题存在,而且这个问题相当大!!



嘿嘿!


文件夹里面的文件个数,我们在访问的时候也是遍历的方式,通俗一点来说,就是使用循环。


那么,我们怎么知道一个文件夹里面有多少个文件呢。前面通过几章对循环的学习,我们知道了For Next循环都是建立在知道了要循环多少次的情况下,可是一个文件夹里面的文件有多有少,用For Next循环显示已经不合适了。


这个时候,我们适时推出了另一种循环方式,Do ... Loop Until循环。


因为,我们今天不是讲循环的,而是将文件的汇总,所以,我们直拉上代码!




代码解析:


1、Dir(strPath & '*.xls*'),表示找后缀包含“.xls”的所有文件,包括 xls、xlsx、xlsb、xlsm等等;

2、在循环之前,我们将会找到第一个文件;

3、strFileName=Dir,固定语法,寻找下一个符合条件的文件;如果缺省,将会进入死循环!!!



第二部分:文件的打开


Excel文件的打开,我们可以用固定语法:


Workbooks.Open(文件完整名)


在实际应用中,我们还要定义一个变量,来表示这个打开的文件,我们称之为对象变量,请看以下代码。




代码解析:


Set wb=Workbooks.Open(strPath & strFileName)


固定语法,对象变量的赋值,我们使用的是  set 对象变量=对象


那这样的话,我们即有了找到全部的文件的办法,又有了打开文件的办法,那么,接下来我们正式进入我们的最后一步,多文件汇总。


第三部分:多文件的汇总


请看以下文件结构:




每个文件的内部结构:




汇总文件的构造:




从上面三个结构图中可以看出:


1、需要汇总的文件是1-12月的销售明细;

2、每个销售明细文件里面,是按地区存放的;

3、汇总的文件,都处于同一个目录下;

4、汇总模板,在目录的外层;

5、需要汇总的文件目录下, 不存在别的文件;

6、汇总的模板,除了原有的明细文件的标题之外 ,增加了月份和地区字段;


下面,正式进入今天的正题:



请看以下代码:




以下是结果:




代码解析:


1、Val(strFileName)表示的是提取字符串前面的数字,这个比工作表函数的用法简单多了;

2、wb.Close False表示关闭文件,并且不保存;汇总的文件太多,如果你不关闭,会大大影响内存的。


其他代码,差不多已经解释过了。


写了这么多,如果你还没有习惯动手去试一下的话,年底的文件汇总,你就找代工吧!!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Vba实现同一文件夹下的批量文件生成excel表格超级链接
零基础学Excel VBA-WE003 【VBA必修课,数据提取】
vba dir 判断文件是否存在
用vbs删除前一天创建的备份文件
批量汇总工作簿
python语句与语法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服