在需要将一些文件名称修改成特定的名称时,如果文件比较多的话,手动修改费时费力,vba可以借助工作表,批量重命名文件。 首先,要在工作簿中建立一个用于改名的工作表,如下图,在B1单元格中输入改名文件所在的文件夹: 接着获取要更改的文件名(原文件名),获取的方法有很多种,可以使用batch(批处理): DIR *.* /B> 文件名清单.txt pause 也可以使用vba: Sub 获取指定目录下的文件名() Dim row As Integer row = 4 '设定单元格中存放文件名的起始行 Path = Cells(1, 2) & IIf(Right(Cells(1, 2), 1) = "\", "", "\") '将文件所在文件夹路径赋予变量,并最后补加“\” file_name = Dir(Path, vbDirectory) '在path所代表的文件夹搜索,将找到的第一个文件或文件夹名称赋予变量str Do While Len(file_name) <> 0 '当str不为空字符串时进入循环 If file_name <> "." And file_name <> ".." And GetAttr(Path & file_name) <> 16 Then '检测排除上一级目录标识和文件夹 Cells(row, 1) = file_name '将找到的文件名赋予单元格 row = row + 1 '每循环一次变量加1 End If file_name = Dir '如果希望dir函数返回指定文件夹里面多个文件名,只需要在同一过程里面再次调用dir函数即可,而且后面的调用不需要指定参数 Loop End Sub 获取文件名到左侧的“原文件名”的结果如下图: 接下来补充右侧的“修改后文件名”: 补充“修改后文件名”后,就可以使用以下vba代码批量改名文件: Sub 批量重命名文件() row = 4 '设定单元格中存放文件名的起始行 maxrow = ActiveSheet.UsedRange.Rows.Count '当前活动工作表的行长 Path = Cells(1, 2) & IIf(Right(Cells(1, 2), 1) = "\", "", "\") '将文件所在文件夹路径赋予变量,并最后补加“\” For i = row To maxrow a_file_fullname = Path & Cells(i, 1) '原文件路径+名称 b_file_fullname = Path & Cells(i, 2) '修改后文件路径+名称 Name a_file_fullname As b_file_fullname '文件改名 Next End Sub 以上内容对您有帮助可以分享或转藏,避免以后找不到。想要了解更多VBA相关知识,欢迎到http://moqingyan.360doc.com我的个人图书馆查看。 |
|