Sub RenameFiles() '设置文件路径和文件名 Dim orgPath As String Dim newPath As String Dim orgFile As String Dim newFile As String orgPath = "C:\Users\DELL\Desktop\ZTE FILES\ORG_FILES\" newPath = "C:\Users\DELL\Desktop\ZTE FILES\NEW_FILES\" '打开工作簿和工作表 Dim wb As Workbook Set wb = ThisWorkbook Dim ws As Worksheet Set ws = wb.Sheets("ZTE FILES") '查找文件夹中的所有文件名 orgFile = Dir(orgPath & "*.*") Dim i As Integer i = 2 '将文件名写入工作表 Do While Len(orgFile) > 0 ws.Range("C" & i).Value = orgFile i = i + 1 orgFile = Dir Loop '复制所有文件到新文件夹 Dim sourceFile As String Dim destFile As String For i = 2 To ws.Range("C" & Rows.Count).End(xlUp).Row sourceFile = orgPath & ws.Range("C" & i).Value destFile = newPath & ws.Range("H" & i).Value FileCopy sourceFile, destFile Next i '重命名新文件夹中的文件 For i = 2 To ws.Range("C" & Rows.Count).End(xlUp).Row orgFile = newPath & ws.Range("C" & i).Value newFile = newPath & ws.Range("H" & i).Value Name orgFile As newFile Next i End Sub Name orgFile As newFile报错文件不存在,运行的结果却正常
时间: 2024-04-05 19:29:36 浏览: 104
文件、文件夹重命名
这可能是因为程序没有检查原始文件和目标文件是否存在。如果目标文件已经存在,那么 `Name` 命令将会失败并报错。
你可以在重命名文件之前添加以下代码片段来检查文件是否存在:
'重命名新文件夹中的文件
For i = 2 To ws.Range("C" & Rows.Count).End(xlUp).Row
orgFile = newPath & ws.Range("C" & i).Value
newFile = newPath & ws.Range("H" & i).Value
If Dir(orgFile) <> "" Then
If Dir(newFile) = "" Then
Name orgFile As newFile
Else
MsgBox "文件 " & newFile & " 已存在!"
End If
Else
MsgBox "文件 " & orgFile & " 不存在!"
End If
Next i
这样,程序将会检查每个要重命名的文件是否存在,并且如果目标文件已经存在,将会弹出一个提示框来告知用户。
希望这能帮到你!
阅读全文