我已经有一个脚本可以为以某些字符开头的文件名执行saveas例程。
这是下面的脚本。
'launch Excel and open file
Const xlExcel8 = 56
Const xlOpenXMLWorkbook = 51
Set fso = CreateObject("Scripting.FileSystemObject")
Set xlObj = CreateObject("Excel.Application")
Set re = New RegExp
re.Pattern = "^ABC.*\.xlsx$"
re.IgnoreCase = True
For Each f In fso.GetFolder("C:\Users\Jimbo\Documents\_ThisWeek").Files
If re.Test(f.Name) Then
Set xlFile = xlObj.WorkBooks.Open(f.Path)
xlObj.DisplayAlerts = False
xlfile.SaveAs "C:\Users\Jimbo\Documents\_ThisWeek\Weekly Feed File.xls", xlExcel8
xlFile.Close True
End If
xlObj.DisplayAlerts = True
Next
Set re = New RegExp
re.Pattern = "^ABC.*\.xlsx$"
re.IgnoreCase = True
For Each f In fso.GetFolder("C:\Users\Jimbo\Documents\_ThisWeek").Files
If re.Test(f.Name) Then
fso.Deletefile(f.Path)
End If
Next
xlObj.Quit
任何人都可以帮助更新脚本以重命名文件而不是执行saveas吗?
答案 0 :(得分:1)
这是一个非常简单的例子。
我没有足够的时间继续讨论如何重命名文件,因此您需要填写该逻辑。我刚刚定义了一个变量strName
,它包含一个示例的字符串值。
您可能希望将strName
语句中的If
设置为适合您的内容以及每个循环中的更改。
如果路径或名称很复杂,请确保双引号变量。
'rename files from one folder to another
option explicit
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim strPath: strPath = "C:\Users\Jimbo\Documents\_AnotherFolder\"
Dim strName: strName = "SetYourNameHere.xls"
Dim re: Set re = New RegExp
Dim oFile
re.Pattern = "^ABC.*\.xlsx$"
re.IgnoreCase = True
For Each oFile In fso.GetFolder("C:\Users\Jimbo\Documents\_ThisWeek").Files
If re.Test(oFile.Name) Then
oFile.move strPath
oFile.name = strName
End If
Next
您已拥有该文件对象。只需将它自己的方法移动到您的其他文件夹,然后使用它的name属性将值设置为您想要的名称。
您应该添加验证文件尚未存在于该文件夹中并正常处理该情况。
答案 1 :(得分:0)
您可以使用MoveFile Method
重命名文件Dim Fso
Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
Fso.MoveFile "Test.txt", "Test2.txt"