第一轮重命名完成 后就不用循环了,并且提示重命名已完成,改一下代码
时间: 2024-04-05 11:29:17 浏览: 70
好的,你可以将代码修改为以下形式:
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
If Dir(orgFile) <> "" Then
If Dir(newFile) = "" Then
Name orgFile As newFile
Else
MsgBox "文件 " & newFile & " 已存在!"
Exit For
End If
Else
MsgBox "文件 " & orgFile & " 不存在!"
Exit For
End If
Next i
'提示重命名已完成
MsgBox "文件重命名已完成!"
End Sub
这样,当程序完成重命名后,会弹出一个提示框来告知用户,并且程序会退出 `for` 循环。
阅读全文