2017-01-03 57 views
-2

我想重命名文件夾中的文件。假設我在列A中有文件名,必須使用列B中的新值進行更改。請提出建議。另外,重命名時擴展名不應該改變。使用宏重命名文件夾中的文件

我曾嘗試的代碼如下:

Sub rename 
    Dim Source As Range 
    Dim OldFile As String 
    Dim NewFile As String 
    Set Source = Cells(1, 1).CurrentRegion 
    For Row = 1 To Source.Rows.Count 
     OldFile = ActiveSheet.Cells(Row, 1) 
     NewFile = ActiveSheet.Cells(Row, 2) 
     ' rename files 
     Name OldFile As Newfile 
    Next 
end sub 
+0

而你在SO或互聯網上找不到任何東西來幫助你? – nightcrawler23

+0

@ nightcrawler23如果您發現然後粘貼代碼。 – mad2

+0

使用谷歌搜索'excel vba重命名文件夾中的文件'可以得到141,000個結果 - 這些工作都沒有? – YowE3K

回答

0

此修改您的代碼將從NewFile去掉所有擴展(設置延伸比長5個字符不再):

Sub Rename() 
    Dim Source As Range 
    Dim OldFile As String 
    Dim NewFile As String 
    Dim Row As Long 
    Set Source = Cells(1, 1).CurrentRegion 
    For Row = 1 To Source.Rows.Count 
     OldFile = ActiveSheet.Cells(Row, 1) 
     NewFile = ActiveSheet.Cells(Row, 2) 
     'see if NewFile contains an extension 
     If InStr(Right(NewFile, 6), ".") > 0 Then 
      'if so, strip it off 
      NewFile = Left(NewFile, InStrRev(NewFile, ".") - 1) 
     End If 
     'append extension 
     NewFile = NewFile & Mid(OldFile, InStrRev(OldFile, ".")) 
     ' rename files 
     Name OldFile As NewFile 
    Next 
End Sub 
+0

它不起作用。當我將ade.jpg重命名爲a1.jpg時,它將重命名爲a1de.jpg – mad2

+0

@matangraj - 對不起,'Right'應該是'Mid',但我本來期望創建'a1e.jpg',而不是'a1de.jpg' – YowE3K

+0

那麼哪一行需要更改? – mad2