ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: wtujcf123

[求助] 如何将文件夹下的文件名批量重命名

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-1-22 21:06 | 显示全部楼层
wtujcf123 发表于 2022-1-22 20:34
老师,我就用是您 上传的附件 ,测试的呢,里面的文件我都没有变。
另外,老师是不是弄成两个按纽会好些 ...

按你的要求做了修改。同时做了写补充,在运行前你可以选择需要修改文件名的文件夹。附件稍后上传。

Sub 提取所有文件名()

Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then
    dz = fd.SelectedItems(1)
Else
    MsgBox "未选择文件夹"
    Exit Sub
End If

With ThisWorkbook.Sheets(1)
    .[a1] = "原文件名"
    .[b1] = "原文件路径"
    .[c1] = "新文件名"
    .Range("a2:b" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).Clear
End With

'dz = ThisWorkbook.Path
遍历 (dz)

End Sub

Sub 遍历(x)
Dim fd1 As Folder, fd2 As Folder, f As File
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = ThisWorkbook.Sheets(1)

Set fd1 = fso.GetFolder(x)
For Each f In fd1.Files
    If Not f.Name Like "*" & ThisWorkbook.Name & "*" Then
        hh = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
        ws.Range("A" & hh) = f.Name
        ws.Range("B" & hh) = fd1 & "\" & f.Name
        'Name ws.Range("a" & hh).Value As ws.Range("a" & hh).Offset(0, 1).Value
    End If
Next f

For Each fd2 In fd1.SubFolders
    遍历 (fd2)
Next fd2

End Sub

Sub 修改文件名()
Set ws = ThisWorkbook.Sheets(1)
hh = ws.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To hh
    Name ws.Range("b" & i).Value As ws.Range("b" & i).Offset(0, 1).Value
Next
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-1-22 21:06 | 显示全部楼层
本帖最后由 夏天的风shh4695 于 2022-1-22 21:27 编辑

请测试附件。做了些改进,在提取文件名前先选择文件夹,这样代码工作薄放在哪里都可以。

批量重命名-求助.zip

21.51 KB, 下载次数: 62

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-22 21:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
夏天的风shh4695 发表于 2022-1-22 21:06
请测试附件。做了些改进,在提取文件名前先选择文件夹,这样代码工作薄放在哪里都可以。

谢谢老师,真的是非常好的一个工具。解决了我的一大问题
经测试发现些小问题,希望老师能再帮忙完善一下。
1.在第一行为空时,其余行无法进行修改名称,
2.个别文件名称未替换时,仍然会出现无效的过程调用。提示。

再次谢谢老师

TA的精华主题

TA的得分主题

发表于 2022-1-23 10:14 | 显示全部楼层
wtujcf123 发表于 2022-1-22 21:46
谢谢老师,真的是非常好的一个工具。解决了我的一大问题
经测试发现些小问题,希望老师能再帮忙完善一下 ...

针对问题1:代码里做了设置标题的操作,运行程序后第一行不会为空,我暂且认为你吧第一行或是第二行清除内容了,针对这个,我重新在代码里加了一个判断。针对问题2:文件名称如果不需要修改,新文件名那一列不要为空,可以吧原文件路径+文件名(B列)原样复制到新文件名那一列(C列),或者删除不需要修改文件名的那一行。
另外就是点击按钮操作完毕后,会给出提示(这也是新增的)。

批量重命名-求助.zip

22.03 KB, 下载次数: 42

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-24 12:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wtujcf123 于 2022-1-24 12:17 编辑
夏天的风shh4695 发表于 2022-1-23 10:14
针对问题1:代码里做了设置标题的操作,运行程序后第一行不会为空,我暂且认为你吧第一行或是第二行清除 ...

非常好的工具,还有这么多注释,太感谢老师了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-24 12:20 | 显示全部楼层
夏天的风shh4695 发表于 2022-1-23 10:14
针对问题1:代码里做了设置标题的操作,运行程序后第一行不会为空,我暂且认为你吧第一行或是第二行清除 ...

老师,能再麻烦您一下吗,我如果想要修改文件夹的名称呢,如何修改您的这个代码呢?

TA的精华主题

TA的得分主题

发表于 2022-1-24 14:34 | 显示全部楼层
wtujcf123 发表于 2022-1-24 12:20
老师,能再麻烦您一下吗,我如果想要修改文件夹的名称呢,如何修改您的这个代码呢?

代码工作簿请单独放置,不要放在第一步“提取文件名”所选择的文件夹里面。

批量重命名-求助.rar

21.76 KB, 下载次数: 99

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-24 18:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
夏天的风shh4695 发表于 2022-1-24 14:34
代码工作簿请单独放置,不要放在第一步“提取文件名”所选择的文件夹里面。

感谢老师的耐心指导。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-25 14:11 | 显示全部楼层
lilyhcn1 发表于 2022-1-22 20:32
送你一个输出文件夹中文件信息的vbs,接下来你自己写bat吧。

谢谢了,很好的小工具,正好需要

TA的精华主题

TA的得分主题

发表于 2022-11-7 15:00 | 显示全部楼层
夏天的风shh4695 发表于 2022-1-24 14:34
代码工作簿请单独放置,不要放在第一步“提取文件名”所选择的文件夹里面。

老师,可以把扩展名单独放 一列吗
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 07:59 , Processed in 0.027597 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表