Dir函数
返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
语法
Dir[(pathname[, attributes])]
Dir 函数的语法具有以下几个部分:
部分 描述 pathname 可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。 attributes 可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。
说明
在 Microsoft Windows 中, Dir 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。 在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。
Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。
下面我们举个实例,使用vba调取某个目录下的所有文件(不含文件夹),指定显示所有的xlsx后缀。可以使用的代码如下:
Sub dir函数() Dim filename As String filename = Dir("F:\*.xlsx") Do While filename <> "" Debug.Print filename filename = Dir Loop Debug.Print TypeName("1 13") End Sub |
黄色标注的就是对于类型的选择,筛选,如果要显示所有的文件,则取消黄色部分即可。
要获得vba相关的内容,可以搜索一下VBA中文帮助助手,有很多chm的帮助文件,可以进行查阅学习。倒数第二行的typename就是查阅得到的,用来返回类型名称。
Sub dir函数() Dim filename As String filename = Dir("F:\",vbDirectory) Do While filename <> "" Debug.Print filename filename = Dir Loop Debug.Print TypeName("1 13") End Sub |
|