『壹』 EXCEL中用VBA重命名文件名的問題:
有一個批處理的:
@echo off
echo 正在替換文件名,請稍等......
ren AA.xls BB.xls
#說明:把AA文件名替換成BB文件名
echo 替換文件名完成!
echo. & pause
另存為.bat,執行替換即可。ren語句可以增加,在excel中做好,另存為txt,再存為bat即可,注意空格。
在當前目錄下,dos命令:dir/b>1.txt 可以獲得文件名
『貳』 求EXCEL VBA批量修改文件名的代碼示例
辦公室有個批量更改照片的占個位置明天上班再貼半夜懶重寫了。
目標:為學員照相導入電腦並批量修改為學號加姓名
1、首先建立一個EXCEL表其中第一個工作薄名稱為照相順序表如下圖
Sub照片重命名()
IfMsgBox("程序將重命名與本工作薄同目錄下的所有照片文件,確認這樣做么?",vbYesNo)<>6Then
ExitSub
EndIf
DimoldnameAsString'舊文件名變數oldname
DimnewnameAsString'新文件名變數newname
DimphotopathAsString'路徑變數photopath
DimnophotoAsString'錯誤提示變數nophoto
DimiAsInteger'循環變數i
photopath=ThisWorkbook.Path'為要修改的文件名路徑復制為當前excel文件的路徑
Fori=2ToWorksheets("照相順序表").Range("a65536").End(xlUp).Row'開始循環從「照相順序表」工作薄的a2單元格開始
'為新文件名變數賦值為路徑變數&&照相順序表工作薄中的a2&b2單元格內容加上擴展名.jpg
newname=photopath&""&Worksheets("照相順序表").Cells(i,1).Text&Worksheets("照相順序表").Cells(i,2).Text&".jpg"
'為舊文件名變數賦值為路徑變數&&照相順序表工作薄中的c2單元格內容&擴展名.jpg
oldname=photopath&""&Worksheets("照相順序表").Cells(i,3).Text&".jpg"
'判斷舊文件名是否在當前目錄存在
IfDir(oldname)<>""Then
NameoldnameAsnewname'存在則改名
Else
nophoto=nophoto&Chr(10)&oldname『不存在則將其賦值給錯誤提示變數並以回車分割累加
EndIf
Nexti
Ifnophoto<>""Then
MsgBoxnophoto&Chr(10)&"圖片不存在"』存在錯誤提示則彈出錯誤提示框
EndIf
EndSub
備注是剛添加的希望有所幫助,另外求分謝謝。
『叄』 如何批量修改EXCEL文件名
第1步:使用下圖工具軟體,點擊【添加文件】按鈕或者直接拖拽文件至軟體,無需將excel文件都歸類到同一文件夾,可多次添加。
『肆』 用excel的VBA給文件批量重命名
一、新建一工作薄「book1.xls」
二、在「sheet1」的A1:a2000中輸入或粘貼「IMG_0001.jpg, IMG_0002.jpg, IMG_0003.jpg, IMG_0004.jpg .......IMG_1999.jpg , IMG_2000.jpg 」;在「sheet1」的B1:B2000中輸入或粘貼「張三.jpg,李四.jpg,王五.jpg....劉備.jpg,」 等2000個姓名。注意:姓名和照片要是一一對應的。
三、按ALT+F11調出VBA編輯框。
四、在工程框里插入一個模塊1,雙擊模塊1出現代碼框
五、在代碼框里復制以下代碼
Sub rename()
Dim y_name As String
Dim x_name As String
For i = 1 To 2000
y_name = "d:\photo\" + Cells(i, 1).Value
x_name = "d:\photo\" + Cells(i, 2).Value + ".jpg"
On Error Resume Next
Name y_name As x_name
Next
End Sub
六、運行宏 「rename」
數秒鍾後,photo 文件夾里的照片的文件名就都變成姓名了。