回覆列表
-
1 # 套路Excel
-
2 # 談天說地聊工作
這種問題excel菜鳥起航最在行,下面給出詳細的操作。
1、這是在一資料夾中的一批word文件。
.
2、這是在excel表格中登記的,擬修改的名稱(對照表)。下面開始操作,細節部分是成敗的關鍵,我會一一指出。
.
3、在新舊名稱對照表中,透過公式,生成DOS命令格式的文字。注意公式的細節:(="ren "&A2&".* "&B2&".*"),“ren”後面有一個空格,第一個“*”後面也有一個空格。公式做好後,向下複製。
.
.
5、現在所有的檔案均顯示檔案的副檔名。
.
6、開啟新建的文字檔案,將上面用公式製作的DOS命令貼上到新建文字檔案中,儲存文字檔案並退出。
.
7、將新建文字檔案的字尾“.txt”改為“.bat”,系統會出現提示,選“是”。
.
8、雙擊“新建文字文件.bat”,系統便進入修改過程。下面是修改後的效果,完全按照預想給予了修改。
.
批次重新命名檔案可以用VBA來解決。
1、首先,新建3個word檔案,集中放在一個資料夾裡面,裡面只有需要更改名稱的word檔案。如下圖:
2、在該資料夾的相同路徑下,新建一個Excel檔案,用來操作更改word檔案的名稱。
3、開啟Excel檔案,將word檔案的名稱與新名稱做好一一對應。表格如下圖所示:
檔名稱都不帶字尾.docx
4、開啟VBE視窗,滑鼠右鍵新建模組,輸入VBA程式碼。如下圖:
上面是圖片程式碼,下面是文字程式碼,題主可複製文字程式碼到VBE的模組當中。
Sub fso()
Dim objFSO As Object "FSO物件
Dim objFolder As Object "資料夾
Dim objFile As Object "檔案
Dim sPath As String "路徑
"建立FSO物件
Set objFSO = CreateObject("Scripting.FileSystemObject")
sPath = ThisWorkbook.Path & "\新建資料夾\" "路徑
Set objFolder = objFSO.GetFolder(sPath)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set sht = Workbooks("操作檔案.xlsm").Sheets("sheet1")
"遍歷路徑下的所有檔案
For Each objFile In objFolder.Files
With sht
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If InStr(objFile.Name, .Cells(i, 1)) > 0 Then
objFile.Name = .Cells(i, 2) & ".docx" "重新命名
Exit For
End If
Next
End With
Next objFile
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
7、結果如下:
8、再次更改新的名稱,試驗:
具體操作可參考下面的gif圖:
以上為VBA操作檔案的程式碼,僅供參考!