ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > DIR函数可否仅仅查找出文件夹?

DIR函数可否仅仅查找出文件夹?

作者:绿色风 分类: 时间:2022-08-17 浏览:123
楼主
amulee
Q:DIR函数可否仅仅查找出文件夹?
A:在DIR函数中有一个查找类型为vbDirectory,其作用是指定查找内容为无属性文件及其路径和文件夹。当利用以下程序时,除了文件夹外,还出现了一些文件。
  1. Sub 查找1()
  2.     Dim Mypath As String
  3.     Dim Myfile As String
  4.     Dim arr() As String
  5.     Dim k As Integer
  6.     '查找C盘根目录
  7.     Mypath = "C:\"
  8.     '运行Dir进行查找,查找内容为指定无属性文件及其路径和文件夹。
  9.     Myfile = Dir(Mypath, vbDirectory)
  10.     '循环遍历
  11.     Do While Myfile <> ""
  12.         k = k + 1
  13.         ReDim Preserve arr(1 To k)
  14.         arr(k) = Myfile
  15.         '继续查找下一个
  16.         Myfile = Dir
  17.     Loop
  18.     '结果输出
  19.     Columns("A:A").Clear
  20.     Cells(1, 1).Resize(UBound(arr), 1) = WorksheetFunction.Transpose(arr)
  21. End Sub


当结果仅返回文件夹时,光用DIR函数就无法完成,还必须借助GetAttr函数获取文件属性。若要实现仅仅查找文件夹的效果,则可以采用以下代码:
  1. Sub 查找所有的文件夹()
  2.     Dim Mypath As String
  3.     Dim Myfile As String
  4.     Dim arr() As String
  5.     Dim k As Integer
  6.     '查找C盘根目录
  7.     Mypath = "C:\"
  8.     '运行Dir进行查找,查找内容为指定无属性文件及其路径和文件夹。
  9.     Myfile = Dir(Mypath, vbDirectory)
  10.     '循环遍历
  11.     Do While Myfile <> ""
  12.         '由于Dir不能直接找出文件夹,所以利用GetAttr判断是否为文件夹
  13.         If GetAttr(Mypath & Myfile) = vbDirectory Then
  14.             k = k + 1
  15.             ReDim Preserve arr(1 To k)
  16.             arr(k) = Myfile
  17.         End If
  18.         '继续查找下一个
  19.         Myfile = Dir
  20.     Loop
  21.     '结果输出
  22.     Columns("A:A").Clear
  23.     Cells(1, 1).Resize(UBound(arr), 1) = WorksheetFunction.Transpose(arr)
  24. 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总版主之一

评论列表
sitemap