我发现此代码将所有文件重命名到一个特定的文件夹中。
Const FolderLoc = "C:\Users\chf000\Desktop\AAA\"
Dim x As Long
x = 1
Dim s As String
s = Dir(FolderLoc & "*.*")
Do While s <> ""
Name FolderLoc & s As FolderLoc & "ANIMATIC-" & x & ".png"
s = Dir()
x = x + 1
Loop
它可以工作,但是重命名过程中出现了问题。基本上,我将png的序列放入文件夹中,如下所示:SHOT001_00.png和SHOT001_01.png等等。 该序列有100多个帧。 该脚本将名称从SHOT001_00.png更改为ANIMATIC-0.png,以此类推。 当我运行脚本时,文件以错误的顺序重命名。 例如,名为ANIMATIC-12.png的文件包含属于帧101的图像。 我想这是脚本如何对文件夹中的文件进行排序的问题,是按字母顺序而不是数字顺序进行排序。 有谁知道我该如何编辑脚本以重命名并保持正确的顺序? 谢谢
答案 0 :(得分:0)
我认为您应该首先将所有名称放入一个数组,然后从该列表中重命名它们。
我使用以下代码将文件列表放入数组:
Private Function GetFileList(FileSpec As String) As Variant
' Returns an array of filenames that match FileSpec
' If no matching files are found, it returns False
Dim FileArray() As Variant
Dim FileCount As Integer
Dim FileName As String
On Error GoTo NoFilesFound
FileCount = 0
FileName = Dir(FileSpec)
If FileName = "" Then GoTo NoFilesFound
'Loop until no more matching files are found
Do While FileName <> ""
FileCount = FileCount + 1
ReDim Preserve FileArray(1 To FileCount)
FileArray(FileCount) = FileName
FileName = Dir()
Loop
GetFileList = FileArray
Exit Function
' Error handler
NoFilesFound:
GetFileList = False
End Function