VBA Dir函数
Dir函数
一、题目:
要求编写一段代码,运用Dir函数返回一个文件夹的文件列表。
二、代码:
Sub 示例_1_12()
Dim wjm
wjm = Dir("C:\WINDOWS\WIN.ini") 
MsgBox wjm
wjm = Dir("C:\WINDOWS\*.ini")
wjm = Dir
End Sub
三、代码详解
1、Sub 示例_1_12():宏程序的开始语句。宏名为示例_1_12。
2、Dim wjm :变量wjm声明为可变型数据类型。
3、wjm = Dir("C:\WINDOWS\WIN.ini") :
如果该文件存在则返回“WIN.INI”(在C:\Windows 文件夹中) ,把返回的文件名赋给变量wjm 。如果该文件不存在则wjm=””。
4、wjm = Dir("C:\WINDOWS\*.ini") :
返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,函数将返回按条件第一个找到的文件名。
5、wjm = Dir :
若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
 
Dir函数
返回一个字符串 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。
 
Dir[(pathname[, attributes])]
Dir 函数的语法具有以下几个部分:
pathname 可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。 
 
attributes 可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。
本示例使用Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由冒号取代反斜线隔开。而且 Microsoft Windows 的通配符在 Mac 中可以作为有效字符出现在文件名中。也可以使用 MacID 函数来指定文件组。
Dim MyFile, MyPath, MyName
 
' 返回“WIN.INI”(如果该文件存在)。
MyFile = Dir("C:\WINDOWS\WIN.ini")
 
' 返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,
' 函数将返回按条件第一个找到的文件名。
MyFile = Dir("C:\WINDOWS\*.ini")
 
' 若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
MyFile = Dir
 
' 返回找到的第一个隐式 *.TXT 文件。
MyFile = Dir("*.TXT", vbHidden)
 
' 显示 C:\ 目录下的名称。
MyPath = "c:\" ' 指定路径。
MyName = Dir(MyPath, vbDirectory)' 找寻第一项。
Do While MyName <> "" ' 开始循环。
' 跳过当前的目录及上层目录
If MyName <> "." And MyName <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 如果它是一个目录,将其名称显示出来。
End If
End If
MyName = Dir ' 查找下一个目录。
Loop