作者:绿色风
分类:
时间:2022-08-17
浏览:196
楼主 amulee |
Q:DIR函数可否仅仅查找出文件夹? A:在DIR函数中有一个查找类型为vbDirectory,其作用是指定查找内容为无属性文件及其路径和文件夹。当利用以下程序时,除了文件夹外,还出现了一些文件。
- Sub 查找1()
- Dim Mypath As String
- Dim Myfile As String
- Dim arr() As String
- Dim k As Integer
- '查找C盘根目录
- Mypath = "C:\"
- '运行Dir进行查找,查找内容为指定无属性文件及其路径和文件夹。
- Myfile = Dir(Mypath, vbDirectory)
- '循环遍历
- Do While Myfile <> ""
- k = k + 1
- ReDim Preserve arr(1 To k)
- arr(k) = Myfile
- '继续查找下一个
- Myfile = Dir
- Loop
- '结果输出
- Columns("A:A").Clear
- Cells(1, 1).Resize(UBound(arr), 1) = WorksheetFunction.Transpose(arr)
- End Sub
当结果仅返回文件夹时,光用DIR函数就无法完成,还必须借助GetAttr函数获取文件属性。若要实现仅仅查找文件夹的效果,则可以采用以下代码:
- Sub 查找所有的文件夹()
- Dim Mypath As String
- Dim Myfile As String
- Dim arr() As String
- Dim k As Integer
- '查找C盘根目录
- Mypath = "C:\"
- '运行Dir进行查找,查找内容为指定无属性文件及其路径和文件夹。
- Myfile = Dir(Mypath, vbDirectory)
- '循环遍历
- Do While Myfile <> ""
- '由于Dir不能直接找出文件夹,所以利用GetAttr判断是否为文件夹
- If GetAttr(Mypath & Myfile) = vbDirectory Then
- k = k + 1
- ReDim Preserve arr(1 To k)
- arr(k) = Myfile
- End If
- '继续查找下一个
- Myfile = Dir
- Loop
- '结果输出
- Columns("A:A").Clear
- Cells(1, 1).Resize(UBound(arr), 1) = WorksheetFunction.Transpose(arr)
- End Sub
dir查找文件夹.rar |
2楼 bishunbiao |
学习下, |
3楼 水星钓鱼 |
研究的真深入,学习了 |
4楼 hustclm |
懵懂学习中 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一