|
![](https://clubstatic.excelhome.net/image/common/ico_lz.png)
楼主 |
发表于 2017-2-25 16:55
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Sub 遍历指定目录下的所有子文件夹和文件()
Dim MyName, dic, did, i, t, f, tt, MyFileName
t = Time
Set dic = CreateObject("scripting.dictionary")
Set did = CreateObject("scripting.dictionary")
dic.Add ("F:\c.绩效薪酬\工资及收现计算\"), ""
i = 0
Do While i < dic.Count
Ke = dic.keys
MyName = Dir(Ke(i), vbDirectory)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(Ke(i) & MyName) And vbDirectory) = vbDirectory Then
dic.Add (Ke(i) & MyName & "\"), ""
End If
End If
MyName = Dir
Loop
i = i + 1
Loop
did.Add ("文件清单"), ""
For Each Ke In dic.keys
MyFileName = Dir(Ke & "*.xls")
Do While MyFileName <> ""
did.Add (Ke & MyFileName), ""
MyFileName = Dir
Loop
Next
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name = "XLS文件清单" Then
Sheets("XLS文件清单").Cells.Delete
f = True
Exit For
Else
f = False
End If
Next
If Not f Then
Sheets.Add.Name = "XLS文件清单"
End If
Sheets("XLS文件清单").[A1].Resize(did.Count, 1) = WorksheetFunction.Transpose(did.keys)
tt = Time - t
MsgBox Minute(tt) & "分" & Second(tt) & "秒"
End Sub |
|