Excel怎样批量列举文件夹和子文件夹名
1、首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样批量列举文件夹和子文件夹名 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。
2、然后按下快捷键ALT+F11打开VBE(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。
3、然后插入了一个模块1,在代码框中复制如下代码:
Private Function WJM(m)
'2020-10-20 22:32:12
Dim m1 As String, r1 As Long, r2 As Long
r1 = 1
m1 = CStr(m)
Do
r2 = InStr(r1, m1, "\")
If r2 <> 0 Then r1 = r2 + 1 Else r1 = r1
Loop Until r2 = 0
WJM = Right(m1, Len(m1) - r1 + 1)
End Function
Sub 批量列举文件夹和子文件夹名()
'2020-10-29 21:55:12
Dim mym, d As Object, m, i As Long, n As Long, mc, mk(), mm As String
On Error Resume Next
Set d = CreateObject("scripting.dictionary")
m = Range("b1").Text
d.Add (m & "\"), ""
i = 0
n = 0
Do While i < d.Count
m = d.keys
mym = Dir(m(i), vbDirectory)
Do While mym <> ""
If mym <> "." And mym <> ".." Then
If (GetAttr(m(i) & mym) And vbDirectory) = vbDirectory Then
n = n + 1
d.Add (m(i) & mym & "\"), n
End If
End If
mym = Dir
Loop
i = i + 1
Loop
If n > 0 Then
mc = d.keys
ReDim mk(1 To n, 1 To 3)
For i = 1 To n
mm = Left(mc(i), Len(mc(i)) - 1)
mk(i, 1) = i
mk(i, 2) = WJM(mm)
mk(i, 3) = Left(mm, Len(mm) - (Len(WJM(mm)) + 1))
Next i
Range("A5").Resize(n, 3) = mk
End If
End Sub
4、以上操作动态过程如下:
5、例:数据”文件夹下有3个文件夹(子文件夹有4个)共7个文件夹,要全部列出文件件夹名。
6、回到工作表窗口, 在B1输入文件夹路径,然后运行【批量列举文件夹和子文件夹名】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),在5 行下输出全部文件夹名,运行过程如下图。
7、为了方便操作,增加一个【列举所有文件夹名】宏命令按钮,操作如下图。
8、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!