vba中dir用法_VBA中DIR用法举例.doc

VBA中DIR用法举例

VBA中DIR函数用法讲解

1、dir代码演示

先上一段代码,作用是获取某个文件夹下子文件夹和文件的名称

没加注释的代码

Sub 获取文件夹和文件名()

Dim str1 As String, str2 As String, i As Integer

Set a = Application.FileDialog(msoFileDialogFolderPicker)

a.Show

str1 = a.SelectedItems(1)

str2 = Dir(str1 & IIf(Right(str1, 1) = "\", "", "\"), vbDirectory)

Do While Len(str2) <> 0

If str2 <> "." And str2 <> ".." Then

i = i + 1

Cells(i, 1) = str2

End if

str2 = Dir

Loop

End Sub

加了注释的代码

Sub 获取文件夹和文件名()

Dim str1 As String, str2 As String, i As Integer

Set a = Application.FileDialog(msoFileDialogFolderPicker) '将文件对话框赋予变量a,目的是让我们选取需要操作的文件夹

a.Show '显示文件对话框

str1 = a.SelectedItems(1) '将选取的第一个文件夹路径赋予变量str1

str2 = Dir(str1 & IIf(Right(str1, 1) = "\", "", "\"), vbDirectory) '在str1所代表的文件夹搜索,将找到的第一个文件或文件夹名称赋予变量str2

Do While Len(str2) <> 0 '当str2不为空字符串时进入循环

If str2 <> "." And str2 <> ".." Then '如果将dir的第二参数指定为vbdirectory,第一参数指定为文件夹路径加"\",那么返回的第一个值是".",第二个值".."

i = i + 1 '每循环一次变量i加1

Cells(i, 1) = str2 '将找到的文件或文件夹名赋予单元格

End if

str2 = Dir '如果希望dir函数返回指定文件夹里面多个文件名,只需要在同一过程里面再次调用dir函数即可,而且后面的调用不需要指定参数

Loop

End Sub

指定的文件夹如下图:

运行上述代码的效果图,可以看到代码将“封装样本”文件夹下文件和文件夹名称全部取出来了。

经过上面代码的演示,你可能对dir的作用有了模糊的了解,如果暂时还不懂,那不要紧,下面我们一起慢慢来了解dir的语法及应用。

2、dir语法

Dir(pathname,attributes)

作用:根据指定的字符串表达式(pathname)和文件属性返回文件或文件夹名。

Pathname:可选参数,一个字符串表达式,代表指定的文件路径,可包含通配符“*”和“?”。不同类型的字符串表达式的含义如下:

D:\baidu player dir函数将在D盘根目录下搜索名为baidu player的文件或文件夹名,然后根据第二参数决定是返回文件名、文件夹名或者一起返回。

D:\baidu player\ dir函数将在D盘baidu player文件下搜索文件,然后根据第二参数决定返回内容

D:\baidu player\*.xls dir函数将在D盘baidu player文件下搜索包含“.xls“的文件。所以此种方式可以搜索到.xls、.xlsx、.xlsm文件

D:\baidu player\???.rmvb dir函数将在D盘baidu player文件下搜索以“.xls“结尾,以三个字符命名的excel文件,所以此种方式只能搜索到.xls文件

Attributes:可选参数,代表文件的属性,VBA里面的常数,可选以下常数,或以下几个常数的和。以下是VBA帮助关于attributes可选常数的解释。

常数值描述vbNormal0指定没有属性的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值