使用Excel VBA批量重命名文件
當(dāng)需要對電腦文件夾里的文件進(jìn)行批量重命名時,我們可以借助Excel VBA來實現(xiàn)。下面將介紹如何使用Excel VBA來批量重命名文件。1. 打開VBA編輯器首先,打開Excel工作表,在鍵盤上按下【
當(dāng)需要對電腦文件夾里的文件進(jìn)行批量重命名時,我們可以借助Excel VBA來實現(xiàn)。下面將介紹如何使用Excel VBA來批量重命名文件。
1. 打開VBA編輯器
首先,打開Excel工作表,在鍵盤上按下【Alt F11】組合鍵,便可打開VBA編輯器。
2. 插入模塊
在VBA編輯器的菜單欄上點擊【插入】、【模塊】,此時會出現(xiàn)一個代碼窗口。
3. 輸入VBA程序代碼
在模塊的代碼窗口里輸入以下VBA程序代碼:
Sub ChangeFileName()
Dim fs, fo, fi, fil, str, na, ty, k, k1, k2
On Error Resume Next '忽略運行過程中可能出現(xiàn)的錯誤
Set fs CreateObject("") '創(chuàng)建并返回對計算機系統(tǒng)文件的訪問
Set fo ("D:ABC") '定義文件夾,“ABC”為D盤下邊的文件夾
Set fi '定義文件夾下邊所有文件集
For Each fil In fi '獲取文件夾里面所有的文件
na '獲取文件名稱
k1 0 '每執(zhí)行1行則初始化一次
k2 0
Do
k2 k2 1
k k1 'k用來存放上次k1的值
k1 InStr(k1 1, na, ".") 'k1為“.”所在的位置
If k1 0 And k > 0 Then '如果“.”為文件后綴名的點
str Mid(na, 1, k - 1) '截取文件名(不含文件類型)
ty Right(na, Len(na) - k 1) '從右側(cè)截文件類型
Exit Do '退出Do循環(huán)
ElseIf k1 0 And k 0 Then '如果沒有文件后綴名,則
str na
ty ""
Exit Do
End If
If k2 1000 Then '如果do循環(huán)超過1000次則強行退出
Exit Do
End If
Loop
str "_2018-07-14" ty '對文件重命名
Next
MsgBox "文件重命名完成,請不要再運行程序!"
End Sub
4. 運行程序
在運行該程序之前,需要先對文件夾里邊的文件進(jìn)行備份。在VBA編輯器界面上按下【F5】鍵運行程序,就能看到文件夾里的所有文件都被重命名了。
5. 程序、思路解讀
通過VBA獲取的文件名是帶有后綴名的。借助Instr函數(shù),我們可以判斷“.”所在的位置,使用Mid和Right函數(shù)截取文件名和后綴名,并將它們拼接起來,從而實現(xiàn)對文件的重命名操作。
“If k10 And k<>0 Then” 條件說明已經(jīng)找到了后綴名所在的位置。之后就可以執(zhí)行截操作了。
使用Do循環(huán)時,應(yīng)當(dāng)避免死循環(huán)的出現(xiàn)。為了防止這種情況的發(fā)生,我們可以添加一個條件,如:k2大于1000時,就強制退出Do循環(huán),以免軟件卡死。
Len是獲取字符串長度的函數(shù)。
6. VBS腳本程序重命名文件
除了使用Excel VBA批量重命名文件,我們還可以將程序代碼寫入vbs腳本程序里邊,然后通過腳本程序重命名文件。具體步驟如下:
(1) 新建一個文本文檔,然后把“Sub ChangeFileName()……End Sub”的代碼復(fù)制到文本文檔里邊。(即:除了“Sub ChangeFileName()”和“End Sub”)
(2) 把文本文檔的后綴名(.txt)改成(.vbs),文件名可自擬,再雙擊該vbs腳本程序即可重命名。(如果已經(jīng)使用VBA重命名,就不要運行vbs腳本程序重命名)。
總之,使用Excel VBA或者編寫vbs腳本程序,都能實現(xiàn)批量重命名文件的功能,選擇適合自己的方式即可。