【发布时间】:2016-06-14 02:07:58
【问题描述】:
我在 excel 中创建了这个宏,使用户能够将多个文件从一个文件夹复制到另一个文件夹。宏工作,它做它应该做的事情。我只是想给它添加一些额外的功能,但我无法让它工作。这些是我想补充的几件事:
1-检查目标文件夹中是否已存在文件并询问用户是否要覆盖是/否。如果是覆盖,如果不是跳到下一个要复制的文件。
2-如果源文件夹中缺少文件,ErrHandler 将丢失文件的名称从 A 列复制到 M 列。我这样做的方式有效,但这不是我想要的方式。我想要的是,如果单元格 A3、A7、A10 中的文件名丢失。这些名称应复制到 M1、M2、M3 等。而不是将它们复制到 M3、M7、M10
我还有另外两个问题:
1- ErrHandler 消息框出现的次数超出了应有的范围。复制完成后,它仍会再显示 2 次。
2-它重写文件名的写入方式的宏。例如,如果原始文件名用小写字母写在一个单元格中,我用大写字母写它。复制文件后,它将以大写形式写入。我想保留原来的名字。
Dim r As Long
Dim SourcePath As String
Dim dstPath As String
Dim myFile As String
SourcePath = Range("F1")
dstPath = Range("F3")
On Error GoTo ErrHandler
For r = 1 To 3000
myFile = Range("A" & r)
FileCopy SourcePath & "\" & myFile, dstPath & "\" & myFile
If Range("A" & r) = "" Then
Exit For
End If
Next r
MsgBox "The file(s) can found in: " & vbNewLine & dstPath, , "COPY COMPLETED"
ErrHandler:
MsgBox "Copy error: " & SourcePath & "\" & myFile & vbNewLine & vbNewLine & _
"File could not be found in the source folder", , "MISSING FILE(S)"
Range("A" & r).Copy Range("M" & r)
Resume Next
End Sub
【问题讨论】: