夜雨聆风学习资料网

ARTICLE · 1293565

Excel-VBA-批量重命名文件夹内文件:读取表格新旧文件名,批量修改/图片

Excel-VBA-批量重命名文件夹内文件:读取表格新旧文件名,批量修改/图片
    经常收到一堆图片、报表,文件名杂乱,需要统一改成单号、客户名称。一个个右键重命名效率极低,很容易改错、改错一个就要返工。
这个宏用Excel表格维护【旧文件名、新文件名】清单,VBA循环读取,自动去磁盘批量改名,支持图片、Excel、PDF等各类文件。
✅ 功能说明
1. 在表格维护旧名称、目标新名称
​
2. 支持Excel、图片、PDF等任意格式文件
​
3. 自动判断源文件是否存在,不存在提示跳过
​
4. 重命名冲突(同名)自动跳过,不会覆盖
​
5. 可以先运行预览模式,只输出日志,不真实修改
完整宏如下可以复制直接使用
 Sub 根据表格清单批量重命名文件()
    Dim ws As Worksheet
    Dim folderPath As String
    Dim lastRow As Long, i As Long
    Dim oldName As String, newName As String
    Dim oldFullPath As String, newFullPath As String
    Set ws = ActiveSheet
    '====参数修改====
    folderPath = "D:\待改名文件\" '文件存放目录,末尾带\
    'A列:旧文件名(带后缀,如 001.jpg) B列:新文件名(带后缀)
    '================
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    If lastRow < 2 Then
        MsgBox "没有改名清单!", vbExclamation
        Exit Sub
    End If
    Application.ScreenUpdating = False
    For i = 2 To lastRow
        oldName = Trim(ws.Cells(i, "A").Value)
        newName = Trim(ws.Cells(i, "B").Value)
        If oldName = "" Or newName = "" Then GoTo NextRow
        oldFullPath = folderPath & oldName
        newFullPath = folderPath & newName
        '判断原文件是否存在
        If Dir(oldFullPath) = "" Then
            ws.Cells(i, "C").Value = "失败:源文件不存在"
            GoTo NextRow
        End If
        '判断新名字是否已经存在,防止覆盖
        If Dir(newFullPath) <> "" Then
            ws.Cells(i, "C").Value = "失败:新文件名已存在"
            GoTo NextRow
        End If
        Name oldFullPath As newFullPath
        ws.Cells(i, "C").Value = "✅改名成功"
NextRow:
    Next i
    MsgBox "批量改名执行结束,C列查看结果!", vbInformation
    Application.ScreenUpdating = True
End Sub
使用说明
表格规划:
A列表头:旧文件名(必须带上后缀:123.xlsx / a.png)
B列表头:新文件名(同样带上后缀)
C列:自动输出运行结果,成功或者失败原因
注意事项:
1. 后缀一定要一致!不要漏写 .xlsx .png,否则直接报错
​
2. 优先复制一份原文件备份再跑宏,防止改错无法恢复
​
3. 文件名不要包含 \ / : * ? " < > |
​
4. 如果想要只预览、不实际改名:注释掉  Name oldFullPath As newFullPath  这一行,只看判断结果
持续分享职场干货🌹专业vba开发,关注收藏不迷路。
Excel-VBA月报报表挨个发邮件太耗时间!VBA读取表格,自动填正文、带上附件一键推送
Excel-VBA数据太脏不用手改!一键全自动清洗:去空格、清乱码、统一日期、多条件去重
VBA多条件查找,返回全部匹配多条记录(一对多查询)
VBA一键按条件自动提取数据(文员、生产统计专用)
领导要的数据对比表,一套公式搞定🤝

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料