昨天介绍了多工作表汇总,多文件汇总其实也是汇总每个文件中的工作表,所以,今天对工作表汇总部分将直接以代码呈现,如果大家对过程不熟悉的话,请参照昨天的课程!!
那么,今天将至少有两个学习重点:
1、怎样找到指定目录下的每一个文件?
2、怎样打开找到的每一个文件?
下面,我们来各个击破!
第一部分,找文件:
也许你会问,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表示关闭文件,并且不保存;汇总的文件太多,如果你不关闭,会大大影响内存的。
其他代码,差不多已经解释过了。
写了这么多,如果你还没有习惯动手去试一下的话,年底的文件汇总,你就找代工吧!!
联系客服