|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 香川群子 于 2013-4-7 22:06 编辑
好吧,如果不要求速度,那就直接遍历循环做了:
特意为你写出来的代码。- Sub FileList()
- tms = Timer
- Dim flist$(65535, 3)
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set fld = fso.GetFolder(ThisWorkbook.Path) '以当前文件所在文件夹为指定文件夹
- Set fsb = fld.SubFolders '列出所有子文件夹
- For Each fd In fsb '遍历所有子文件夹
- For Each f In fd.Files '遍历子文件夹中的所有文件
- n = InStrRev(f.name, ".")
- If InStr(n, f.name, "xl") Then
- flist(k, 0) = Mid(f.name, n)
- flist(k, 1) = f.name
- flist(k, 2) = fd.name
- flist(k, 3) = fd.Path
- k = k + 1
- End If
- Next
- Next
- [a1].CurrentRegion.Offset(1) = ""
- [a2].Resize(k, 4) = flist
- [b1] = "在" & fsb.Count & "个子文件夹中共找到 " & k & "个Excel文件。"
- MsgBox Format(Timer - tms, "0.000s")
- End Sub
复制代码 哦,还不对,还需要遍历子文件夹中的子文件夹的……要用递归了。
|
|