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 FunctionSub 批量列举文件夹和子文件夹名() '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 IfEnd Sub
4、以上操作动态过程如下:
5、例:数据”文件夹下有3个文件夹(子文件夹有4个)共7个文件夹,要全部列出文件件夹名。
6、回到工作表窗口, 在B1输入文竭惮蚕斗件夹路径,然后运行【批量列举文件夹和子文件夹名】宏(菜单栏中点【视图】中下列表中田肖倦娄【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),在5 行下输出全部文件夹名,运行过程如下图。
7、为了方便操作,增加一个【列举所有文件夹名】宏命令按钮,操作如下图。
8、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!