【发布时间】:2020-07-29 23:48:38
【问题描述】:
我创建了一个宏来重命名文件,但收到此错误:
运行时错误 53 找不到文件
但如果我保持光标,它会正确选择我的位置路径 "命名文件夹 & Curname As 文件夹 & Newname"
Sub getname()
Dim folder As String
mfolder = Sheets("Sheet1").Cells(1, 2).Value
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer
i = 3
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(mfolder)
For Each objFile In objFolder.Files
Sheets("Sheet1").Cells(i, 1).Value = objFile.Name
i = i + 1
Next objFile
End Sub
Sub reName()
Dim mfolder As String
Dim CurName As String
Dim NewName As String
Dim i As Integer
i = 3
mfolder = Sheets("Sheet1").Cells(1, 2).Value
Do While Sheets("Sheet1").Cells(i, 1).Text <> "" And Sheets("Sheet1").Cells(i, 2).Text <> ""
CurName = Sheets("Sheet1").Cells(i, 1).Text
NewName = Sheets("Sheet1").Cells(i, 2).Text
Name mfolder & CurName As mfolder & NewName
i = i + 1
Loop
MsgBox ("Complete")
End Sub
【问题讨论】:
-
路径和文件名之间有路径分隔符吗?另外,通常的做法是使用
.Value而不是.Text。 -
在 Name 命令之前,使用 Dir 检查文件是否存在:
Dir(mfolder & CurName)。如果文件不存在,它将返回一个空字符串。这样,您可以弹出一个消息框或写入日志文件以确定错误的文件名。
标签: excel vba file file-not-found filesystemobject