Dir函数常常用来多工作簿(文件)操作合并或汇总数据。 如下栗子,同一个文件路径下有4个工作簿,其中汇总工作簿是要合并刘关张三个工作簿的数据。 刘关张三个工作簿的数据形式如下 三个工作簿各只有一个工作表,工作表的数据形式如上图,所要的结果如下图: 代码如下(网友的): 第一个红色小框内的代码是声明变量以及其他辅助。 第二个红色大框内的代码是操作工作簿内的数据。 这里其实已经指明了Dir函数遍历工作簿的套路。如下图,这是一个框架。 Filename = Dir(ThisWorkbook.Path & '\新建文件夹\*.xlsX') 返回的是文件名称,如 关羽.xlsx fn = ThisWorkbook.Path & '\' & Filename返回的是带全路径的文件名称,如 'C:\Users\Administrator\Desktop\工作簿汇总fff\关羽.xlsx' 下面将看看如何展开这个套路。 将 刘关张三个工作簿,放在一个新建的文件夹当中,新建的文件夹和【汇总】工作簿在同一个文件路劲中。依然是将刘关张三个工作簿的数据合并。 代码修改如下: 这个框架,修改红色框的地方,就能够实现“拿来主义”。 这里仅仅修改了文件路劲,其他操作一样。 其中Do....Loop框架是不需要理会的。可以说是比较固定的形式。 这里的代码: 指明了要遍历的路径,以及要遍历的路径下具体的文件类型 (xlsx) Filename = Dir(ThisWorkbook.Path & '\新建文件夹\*.xlsX') 不是xlsx类型的文件不会遍历。 如,新增一个xlsm类型的工作簿 如下图,用 k 来计算遍历工作簿的次数,只有3次。 Dir遍历文件的固定形式就是这样,框架都可以拿来主义。 文件下载: 链接: https://pan.baidu.com/s/1i47chGp 密码: 4kg4 |
|