使用excel vba重命名文件夹中的所有文件

问题描述 投票:-5回答:2

我想在excel vba中用一个递增的整数i替换下划线和下划线前缀之前的任何内容,以重命名文件夹中的所有文件。

excel vba excel-vba
2个回答
1
投票
Sub RenameFiles()
Const FolderLoc = "P:\yourfolder\"
Dim x As Long
x = 1
Dim s As String
s = Dir(FolderLoc & "*.*")
Do While s <> ""
    Name FolderLoc & s As FolderLoc & x & Right(s, Len(s) - (InStr(s, "_") - 1))
    s = Dir()
    x = x + 1
Loop
End Sub

0
投票

'MACRO重命名备份的文件并按顺序放置子Rename2()

Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object, abc As Object
Dim i As String
Dim s As String, dest As String

dest = "H:\Automation\outputs\"

Set objFSO = CreateObject("Scripting.FileSystemObject")
FolderLoc = dest


Set objFolder = objFSO.GetFolder(dest)
'MsgBox objFolder

i = 1
s = Dir(FolderLoc & "*.*")

On Error Resume Next

'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files

    Do While (InStr(s, "_")) > 0
        'MsgBox s
        'Name OldFile as NewFile

        Name FolderLoc & s As FolderLoc & i & "." & Right(s, Len(s) - (InStr(s, "_") + 2))
        s = i & "." & Right(s, Len(s) - (InStr(s, "_") + 2))
        'MsgBox s
        'abc = Name FolderLoc & s As FolderLoc & "(" & i & ")" & Right(s, Len(s) - (InStr(s, "@_@") + 2))
        'i = i + 1
    Loop
    i = i + 1
    s = Dir()

Next objFile

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.