excel - VBA重命名文件夹中的文件保持正确的顺序
问题描述
我发现此代码将所有文件重命名为特定文件夹。
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 帧的图像。我猜是脚本如何对文件夹中的文件进行排序的问题,是按字母顺序排序,而不是数字顺序。有谁知道如何编辑脚本以重命名并保持正确的顺序?谢谢
解决方案
我认为您应该首先将所有名称放入一个数组中,然后从该列表中重命名它们。
我使用此代码将文件列表放入数组中:
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
推荐阅读
- python - awk:致命:无法打开文件“文件”进行读取(权限被拒绝)
- sql - 列中的逗号分隔天名称
- if-statement - 通过改变工作日期来消除周末日期
- java - 为什么hadoop不能加载类?
- linux - 重新安装linux后如何恢复已删除的文件
- react-native - 我想在一个特殊孩子的新闻发布会上改变一个以上孩子的背景
- rest - Spring REST Docs - 由于输入结束,没有要映射的内容
- php - 安装模块后 composer.json 文件出错
- c# - 如何让我的 TwoSum 方法处理无序的数字?
- ember.js - 在 ember 中使用位置(如何查找)