VBA DIR函数 
VBA Dir函数
第 1.12例 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
InStr 函数
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。
语法 
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
vba计算字符串长度部分 说明 
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。 
string1 必要参数。接受搜索的字符串表达式。 
string2 必要参数。被搜索的字符串表达式。 
Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。指定一个有效的LCID (LocaleID) 以在比较中使用与区域有关的规则。 
设置 
compare 参数设置为: 
常数 值 描述 
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。 
vbBinaryCompare 0 执行一个二进制比较。 
vbTextCompare 1 执行一个按照原文的比较。 
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。 
返回值 
如果 InStr返回 
string1 为零长度 0 
string1 为 Null Null 
string2 为零长度 Start 
string2 为 Null Null 
string2 不到 0 
在 string1 中到string2  到的位置 
start > string2 0 
说明
InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。