Dir函数的重要性
在Office VBA的世界里,要跨文件进行批量操作(如多个工作簿同名工作表合并,多个工作簿合并等),Dir函数是经常要用到的。
当你学会利用VBA进行多文件的批量操作,命运的齿轮或许正在悄然开始转动......别人可能需要一个1小时才能完成的工作量,你只要10分钟或更少的时间就能完成。
这里通过3个小案例,抛砖引玉,介绍Dir函数的基本用法。
3个小案例
案例1:获取D盘下所有文件名称
Sub 获取D盘的所有文件名称()
Dim fn As String
fn = Dir("D:\*.*")
Do While fn <> ""
Debug.Print fn
fn = Dir
Loop
End Sub
案例2:获取D盘下所有xls、xlsm等类型的文件名称
Sub 获取D盘的Excel文件名称()
Dim fn As String
fn = Dir("D:\*.xls?")
Do While fn <> ""
Debug.Print fn
fn = Dir
Loop
End Sub
案例3:获取D盘下所有文件夹及文件名称
Sub 获取D盘的所有文件夹名称和文件名称()
Dim fn As String
fn = Dir("D:\*.*", vbDirectory)
Do While fn <> ""
Debug.Print fn
fn = Dir
Loop
End Sub
基本语法
Dir [ (pathname, [ attributes ] ) ] |
pathname参数:支持使用多字符(*)和单字符(?)通配符来匹配指定类型的文件;
attributes参数:默认为vbNormal,返回文件名称。另一个常用的取值为vbDirectory,则返回目录名称、和文件名称。
其他说明
1.必须在首次调用 Dir 函数时指定 pathname参数;Dir函数会返回与 pathname 匹配的第一个文件名;
2.重新调用 Dir 而不使用参数,会返回与pathname匹配的下一个文件名;当不再有匹配的文件名时,Dir 将返回空字符串;在返回空字符串后,重新调用 Dir 而不使用参数,将会发生错误;
3.Dir函数,通常和循环语句结合使用,将Dir函数返回的空字符串,作为循环语句结束的条件。