分享

利用Dir函数遍历某文件夹下的所有文件 | VBA实例教程

 gblhp 2015-02-16

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat1/81.html,VBA交流群273624828。

今天介绍利用Excel VBA的Dir方法来遍历某文件夹下的所有excel文件。还是直接来看例子,假设在D盘有一个叫工作日志的文件夹,里面放着每日的工作记录,都是excel 2007表格,现在由于工作需要要从这里表格中提取数据,那就需要依次对每个Excel表格进行访问。只要知道了工作表的名称,我们就可以用workbook的Open方法或者GetObject方法从工作簿中获得数据,而Dir函数正是起到这个作用。Dir函数会按固定的顺序依次访问文件夹下的文件,并返回相应文件的名称,当全部都访问完时就会返回空值,因此返回值是不是空值可以做为判断Dir函数是否遍历完整个文件夹的依据。

看下面的代码

Sub test()
Dim myfile
myfile = Dir("D:/工作日志/*.xlsx")   '返回对应路径下第一个符合*.xlsx的文件名称
Do While myfile <> ""          '当返回的文件名为空时停止循环
Debug.Print myfile          '将返回的结果显示在立即窗口
myfile = Dir                 '返回对应路径下一个符合条件的文件名称
Loop
End Sub

在Dir函数的路径当中是可以使用通配符的,在这里*代表任意个字符,那么*.xlsx就代表后缀名为xlsx的Excel 2007文件,对应的你的Excel如果是2003版的,那就应该是*.xls,如果你要遍历的文件中两个版本的都包括,那可以表示为*.xls*。Dir函数一次只能返回一个值 ,所以要遍历所有的文件就要不断的调用Dir函数,但是第二次调用的时候就不必写参数了, myfile = Dir 就会默认的去寻找下一个符合条件的文件。Debug.Print myfile是将变量值显示在立即窗口的意思,这句就可以换成你自己的操作代码,比如在之前讲到的“多个Excel工作簿中的数据汇总到一个Excel中(1)”就是对工作簿进行了Open操作。

 

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多