Excel怎样批量不同文件夹文件复制一个文件夹中
1、上次分享了《Excel怎样批量提取文件夹和子文件夹所有文件》经验,将《Excel怎样批量提取文件夹和子文件夹所有文件.xlsm》文件名另存为《Excel怎样批量不同文件夹文件复制一个文件夹中 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。
2、然后按下快捷键ALT+F11打开VBE(宏)编辑界面,然后在模块1代码框最后复制如下代码:
Private Function FINDZH(m, mm) As String
'2020-10-10 21:33:15
Dim m1 As String, mm1 As String, n As Long, n1 As Long
On Error Resume Next
m1 = m.Text
mm1 = mm.Text
If Err.Number <> 0 Then
m1 = m
mm1 = mm
End If
Err.Clear
n = InStr(1, mm1, m1, 0)
n1 = Len(m)
If n = 0 Then
FINDZH = n
Else
Do
k = n
n = InStr(n + n1, mm1, m1, 0)
Loop Until n = 0
FINDZH = k
End If
End Function
Sub 批量复制文件()
'2020-10-26 21:41:07
Dim mp As String, m As String, n1 As String, n2 As String, d As Object
mp = Range("B3").Text & "\"
On Error Resume Next
If Range("C" & Rows.Count).End(xlUp).Row = 4 Then Exit Sub
Set d = CreateObject("scripting.dictionary")
For i = 5 To Range("C" & Rows.Count).End(xlUp).Row
If Range("C" & i).Text <> "" Then
m = Range("B" & i).Text
my:
d.Add m, ""
If Err.Number <> 0 Then
n1 = Left(m, FINDZH(".", m) - 1)
n2 = Right(m, Len(m) - FINDZH(".", m) + 1)
If IsNumeric(Right(n1, 1)) Then
m = Left(n1, Len(n1) - 1) & Val(Right(n1, 1)) + 1 & n2
Else
m = n1 & "1" & n2
End If
Err.Clear
GoTo my
End If
FileCopy Range("C" & i).Text, mp & m
End If
Next i
MsgBox "完成"
End Sub
3、以上操作动态过程如下:
4、例:“20201020002”文件夹有4个子文件夹共11个文件复制到“20201020002”文件夹下的子文件夹“汇总文件”。
5、回到工作表窗口,首先在B1和B3填写文件夹路径,点下【列举所有文件名】命令按钮,列出所有文件名,然后运行【批量复制文件】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),文件夹“汇总文件”复制所有文件,运行过程如下图。
6、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!