Excel怎样批量提取文件夹和子文件夹所有文件

2024-10-16 21:17:33

1、首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样批量提取文件夹和子文件夹所有文件 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。

Excel怎样批量提取文件夹和子文件夹所有文件

3、然后插入了一个模块1,在代码框中复制如下代码:Option Base 1Pri箪滹埘麽vate 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-20 22:52:57 Dim mym, d1 As Object, d2 As Object, i, myfn, m As String, m1, mb(), mb1(), k On Error Resume Next Set d1 = CreateObject("scripting.dictionary") Set d2 = CreateObject("scripting.dictionary") m = Range("b1").Text d1.Add (m & "\"), "" i = 0 Do While i < d1.Count m1 = d1.keys mym = Dir(m1(i), vbDirectory) Do While mym <> "" If mym <> "." And mym <> ".." Then If (GetAttr(m1(i) & mym) And vbDirectory) = vbDirectory Then d1.Add (m1(i) & mym & "\"), "" End If End If mym = Dir Loop i = i + 1 Loop For Each m1 In d1.keys myfn = Dir(m1) Do While myfn <> "" d2.Add (m1 & myfn), "" myfn = Dir Loop Next m1 k = 0 mb = d2.keys ReDim mb1(d2.Count, 3) For i = 0 To d2.Count - 1 k = k + 1 mb1(k, 1) = k mb1(k, 2) = WJM(mb(i)) mb1(k, 3) = mb(i) Next i If Range("A" & Rows.Count).End(xlUp).Row > 4 Then Range("A5:C" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents End If If k <> 0 Then Range("a5:C" & k + 4) = mb1 MsgBox "完成"End Sub

Excel怎样批量提取文件夹和子文件夹所有文件

4、以上操作动态过程如下:

Excel怎样批量提取文件夹和子文件夹所有文件Excel怎样批量提取文件夹和子文件夹所有文件Excel怎样批量提取文件夹和子文件夹所有文件

7、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!

猜你喜欢