重命名文件时发生VBScript对象必需错误
我正在尝试编写一个脚本来重命名多个Excel文件。如果文件名中有“TEMP”,我想将输入框中的“TEMP”改为日期 脚本一直工作到我进入For循环。我得到一份工作 所需对象:'C:\users\jspfu\sourc'第23行错误,代码800A01A8 错误。我对VBScript真的很陌生,我基本上是从YouTube视频中复制了这段代码,不管怎么说,是For循环部分 以下是我目前的脚本:重命名文件时发生VBScript对象必需错误,vbscript,Vbscript,我正在尝试编写一个脚本来重命名多个Excel文件。如果文件名中有“TEMP”,我想将输入框中的“TEMP”改为日期 脚本一直工作到我进入For循环。我得到一份工作 所需对象:'C:\users\jspfu\sourc'第23行错误,代码800A01A8 错误。我对VBScript真的很陌生,我基本上是从YouTube视频中复制了这段代码,不管怎么说,是For循环部分 以下是我目前的脚本: Option Explicit Dim FSO,FileLoc, UsrDate, Msg, File, O
Option Explicit
Dim FSO,FileLoc, UsrDate, Msg, File, Oldname, NewFileName, FoldName
Set FSO = CreateObject("Scripting.FileSystemObject")
FileLoc = "C:\Users\jspfu\source\XL_Files"
UsrDate= Inputbox("Enter the Date", "Date")
FoldName = FSO.GetFolder(FileLoc)
If IsNumeric(UsrDate) and UsrDate<>"" then
Msg = Msgbox ("is this " & UsrDate & " Correct",VBYesNo, "Verify Date")
end if
Do While Msg <> 6
If Msg = 7 Then
UsrDate= Inputbox("Enter the Date", "Date")
Msg = Msgbox ("is this " & UsrDate & " Correct",VBYesNo, "Verify Date")
ElseIf Not IsNumeric(UsrDate) or UsrDate= "" then
UsrDate= Inputbox("Enter the Date", "Date")
End If
Loop
For each File in FoldName.files
Oldname = FileLOC & File.name
NewFileName = replace(Fname, "TEMP", Date)
FSO.MoveFile Fname, NewFileName
Next
选项显式
Dim FSO、FileLoc、UsrDate、Msg、File、Oldname、NewFileName、FoldName
设置FSO=CreateObject(“Scripting.FileSystemObject”)
FileLoc=“C:\Users\jspfu\source\XL\u文件”
UsrDate=Inputbox(“输入日期”、“日期”)
FoldName=FSO.GetFolder(FileLoc)
如果是数字(UsrDate)和UsrDate“”,则
Msg=Msgbox(“这是”&UsrDate&“正确的”,VBYesNo,“验证日期”)
如果结束
边吃边吃味精6
如果Msg=7,则
UsrDate=Inputbox(“输入日期”、“日期”)
Msg=Msgbox(“这是”&UsrDate&“正确的”,VBYesNo,“验证日期”)
否则如果不是数字(UsrDate)或UsrDate=“”,则
UsrDate=Inputbox(“输入日期”、“日期”)
如果结束
环
对于FoldName.files中的每个文件
Oldname=FileLOC&File.name
NewFileName=replace(Fname,“TEMP”,Date)
FSO.MoveFile Fname,NewFileName
下一个
谢谢您的帮助。您的代码中有一些问题:
Set
获取FoldName
的对象引用:Set FoldName=FSO.GetFolder(FileLoc)
File.Name
而不是MoveFile
直接重命名文件For Each File In FoldName.Files
NewFileName = Replace(File.Name, "TEMP", UsrDate)
If NewFileName <> File.Name Then
File.Name = NewFileName
End If
Next
FoldName.Files中每个文件的
NewFileName=Replace(File.Name,“TEMP”,UsrDate)
如果是NewFileName File.Name,那么
File.Name=NewFileName
如果结束
下一个
谢谢@Etienne Laneville!!它的工作,这是惊人的!再次非常感谢。很高兴它能起作用。有机会时,请将问题标记为已回答!