分享

VBA:Dir函数多工作簿操作套路

 L罗乐 2017-11-03

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多