返回列表 上一主題 發帖

[發問] 檔案名稱自動變更

回復 1# rouber590324

可以自己指定來源檔案資料夾

最後會把更名後的檔案放到Rename資料夾

試試附件吧 !
  1. Option Explicit

  2. Private Sub File_Rename_Click()

  3.     Dim i As Integer
  4.     Dim FolderPath, original_file, rename_file As String
  5.    
  6. '    On Error Resume Next
  7.    
  8.     '選擇來源檔案資料夾
  9.     With Application.FileDialog(msoFileDialogFolderPicker)

  10.         .Title = "選擇檔案來源資料夾"
  11.         .Show
  12.         FolderPath = .SelectedItems(1) & "\"
  13.         Debug.Print FolderPath
  14.    
  15.     End With

  16.     '清空EXCEL
  17.     If Worksheets(1).Range("A2") <> "" Then Worksheets(1).Range("A2:B" & Worksheets(1).Range("A65536").End(xlUp).Row) = ""
  18.    
  19.     '判斷是否有選擇來源資料夾
  20.     If FolderPath <> "" Then
  21.         
  22.         original_file = Dir(FolderPath & "*.*")
  23.         i = 1
  24.         Do Until original_file = ""
  25.             i = i + 1
  26.             Worksheets(1).Cells(i, 1) = original_file
  27.             original_file = Dir
  28.         Loop


  29.         '資料夾不存在則新建
  30.         If Dir(FolderPath & "\Rename", vbDirectory) = "" Then MkDir FolderPath & "\Rename"

  31.         For i = 2 To Worksheets(1).Range("A65536").End(xlUp).Row

  32.             '修改檔名
  33.             If Left(Worksheets(1).Range("A" & i), 5) = "test1" And Mid(Worksheets(1).Range("A" & i), 7, 1) = "1" Then
  34.             
  35.                 rename_file = Mid(Worksheets(1).Range("A" & i), 1, 6) & "2" & Mid((Worksheets(1).Range("A" & i)), 8)
  36.                
  37.                 Worksheets(1).Range("B" & i) = rename_file
  38.                
  39.                 Call FileSystem.FileCopy(FolderPath & Worksheets(1).Range("A" & i), FolderPath & "\Rename\" & rename_file)
  40.                
  41.             ElseIf Left(Worksheets(1).Range("A" & i), 5) = "test1" And Mid(Worksheets(1).Range("A" & i), 8, 1) = "製" Then

  42.                 rename_file = Mid(Worksheets(1).Range("A" & i), 1, 7) & Mid(Worksheets(1).Range("A" & i), 9)
  43.                
  44.                 Worksheets(1).Range("B" & i) = rename_file
  45.                
  46.                 Call FileSystem.FileCopy(FolderPath & Worksheets(1).Range("A" & i), FolderPath & "\Rename\" & rename_file)
  47.                
  48.             End If

  49.         Next

  50.         MsgBox "更名完成"
  51.    
  52.         '開啟結果路徑
  53.         ActiveWorkbook.FollowHyperlink Address:=FolderPath + "\Rename\", NewWindow:=True
  54.    
  55.     End If

  56. End Sub
複製代碼
檔案重新命名.zip (15.62 KB)
用功到世界末日那一天∼∼∼

TOP

        靜思自在 : 【為善競爭】人生要為善競爭,分秒必爭。
返回列表 上一主題