试试下面的代码:
Sub Macro3()
On Error Resume Next
Dim mypath, myFile$, i&, d As Object
mypath = [F1]
If Dir(mypath & "*", vbDirectory) = "" Then
MsgBox "文件地址不存在,请重新输入"
Exit Sub
End If
If Range("C65536").End(xlUp).Row = 1 Then
MsgBox "请在C列输入新名称"
Exit Sub
End If
arr = Range("A2:C" & Range("A65536").End(xlUp).Row)
Set d = CreateObject("scripting.dictionary")
d.CompareMode = 1
For i = 1 To UBound(arr)
d(arr(i, 1)) = ""
Next
For i = 1 To UBound(arr)
If d.Exists(arr(i, 3)) Then
MsgBox "禁止用与原文件相同的文件名称修改文件名"
Exit Sub
End If
Next
mypath = mypath & "\"
For i = 1 To UBound(arr)
If arr(i, 3) <> "" Then
If Dir(mypath & arr(i, 1)) <> "" Then Name mypath & arr(i, 1) As mypath & arr(i, 3)
End If
Next
MsgBox "修改完毕"
End Sub
A列为原文件名,C列为修改后文件名,都带文件后缀……