『壹』 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 文件夹里的照片的文件名就都变成姓名了。