Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7725|回复: 7

[已解决]Dir()可以只查找出所有文件夹吗?

[复制链接]
发表于 2011-6-8 12:13 | 显示全部楼层 |阅读模式

  1. Sub test()
  2.     Dim Mypath As String
  3.     Dim Myfile As String
  4.     Dim arr(1 To 1000, 1 To 1) As String
  5.     Dim k As Integer
  6.     Mypath = "C:"
  7.     Myfile = Dir(Mypath, vbDirectory)
  8.     Do While Myfile <> ""
  9.         k = k + 1
  10.         arr(k, 1) = Myfile
  11.         Myfile = Dir
  12.     Loop
  13.     Columns("A:A").Clear
  14.     Cells(1, 1).Resize(UBound(arr), 1) = arr
  15. End Sub
复制代码
dir.rar (8.29 KB, 下载次数: 19)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-6-8 12:23 | 显示全部楼层    本楼为最佳答案   
利用GetAttr判断
  1. Sub test()
  2.     Dim Mypath As String
  3.     Dim Myfile As String
  4.     Dim arr(1 To 1000, 1 To 1) As String
  5.     Dim k As Integer

  6.     Mypath = "C:"
  7.     Myfile = Dir(Mypath, vbDirectory)
  8.     Do While Myfile <> ""
  9.         If GetAttr(Mypath & Myfile) = vbDirectory Then
  10.             k = k + 1
  11.             arr(k, 1) = Myfile
  12.         End If
  13.         Myfile = Dir
  14.     Loop
  15.     Columns("A:A").Clear
  16.     Cells(1, 1).Resize(UBound(arr), 1) = arr
  17. End Sub
复制代码
回复

使用道具 举报

发表于 2011-6-8 13:59 | 显示全部楼层
把------Mypath = "C:\"------这一句改为------Mypath = "C:\*.xls"------的时候,就可以只查到扩展名为xls的文件,你想要什么文件就用什么扩展名就可以了......
回复

使用道具 举报

发表于 2011-6-8 14:02 | 显示全部楼层
下面这段代码相对简单一些:
新建个按钮,在按钮里贴上如下代码
Private Sub CommandButton1_Click()
Dim fn As String
Dim r As Long
fn = Dir("C:\Users\admin\Desktop\*.xls")
While fn <> ""
r = r + 1
Cells(r, 1) = fn
fn = Dir()
Wend
End Sub
回复

使用道具 举报

 楼主| 发表于 2011-6-8 16:36 | 显示全部楼层
谢谢阿木、henrywei88!

学习getatt了

vbDirectory 16 指定无属性文件及其路径和文件夹。
看了帮助,还是觉得理解不了这句。这儿vbDirectory是什么含义呢
回复

使用道具 举报

发表于 2011-6-9 09:05 | 显示全部楼层
vbDirectory 16 目录或文件夹
它只是Dir函数中的attributes参数的一个常数。
Directory 英文本意是:目录。在计算机语言中也是文件夹的意思。
Dir函数就是Directory的前面3个字母。
呵呵,咬文嚼字真难啊。
回复

使用道具 举报

 楼主| 发表于 2011-6-9 09:44 | 显示全部楼层
蓝桥玄霜 发表于 2011-6-9 09:05
vbDirectory 16 目录或文件夹
它只是Dir函数中的attributes参数的一个常数。
Directory 英文本意是:目录 ...

谢谢蓝版!

Myfile = Dir(Mypath, vbDirectory),我是意外这句并不能只显示文件夹名。

vbDirectory 16 指定无属性文件及其路径和文件夹。
所以才看这句的帮助。您的解释很正确、清晰。
我(断句)的理解是:参数vbDirectory,表示返回无属性文件名,或者文件夹名(即目录名)。那“及其路径”怎么体现呢?
回复

使用道具 举报

发表于 2011-9-1 03:19 | 显示全部楼层
谢谢蓝版!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-30 04:15 , Processed in 0.212337 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表