我是VBA新手(只有一点Java培训),但在其他帖子的帮助下,组装了这段代码,并遇到了一些问题。
我正在尝试编写代码,以循环遍历文件夹中的每个文件,测试每个文件是否符合某些条件。 如果满足条件,则应编辑文件名,覆盖(或删除之前的)与相同名称的任何现有文件。 然后应将这些新命名的文件的副本复制到另一个文件夹中。 我认为我非常接近,但我的代码拒绝循环遍历所有文件和/或运行时会崩溃Excel。 请帮忙? :-)
Sub RenameImages()
Const FILEPATH As String = _
"C:\\CurrentPath"
Const NEWPATH As String = _
"C:\\AditionalPath"
Dim strfile As String
Dim freplace As String
Dim fprefix As String
Dim fsuffix As String
Dim propfname As String
Dim FileExistsbol As Boolean
Dim fso As Object
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
strfile = Dir(FILEPATH)
Do While (strfile <> "")
Debug.Print strfile
If Mid$(strfile, 4, 1) = "_" Then
fprefix = Left$(strfile, 3)
fsuffix = Right$(strfile, 5)
freplace = "Page"
propfname = FILEPATH & fprefix & freplace & fsuffix
FileExistsbol = FileExists(propfname)
If FileExistsbol Then
Kill propfname
End If
Name FILEPATH & strfile As propfname
'fso.CopyFile(FILEPATH & propfname, NEWPATH & propfname, True)
End If
strfile = Dir(FILEPATH)
Loop
End Sub
如果有帮助的话,文件名以ABC_mm_dd_hh_Page_#.jpg开头,目标是将它们缩短为ABCPage#.jpg。非常感谢!