重命名文件时发生VBScript对象必需错误

重命名文件时发生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

我正在尝试编写一个脚本来重命名多个Excel文件。如果文件名中有“TEMP”,我想将输入框中的“TEMP”改为日期

脚本一直工作到我进入For循环。我得到一份工作

所需对象:'C:\users\jspfu\sourc'第23行错误,代码800A01A8

错误。我对VBScript真的很陌生,我基本上是从YouTube视频中复制了这段代码,不管怎么说,是For循环部分

以下是我目前的脚本:

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!!它的工作,这是惊人的!再次非常感谢。很高兴它能起作用。有机会时,请将问题标记为已回答!