ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 《批量修改文件名,网上的方法试过了,都失败,无奈求救》

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-11-14 16:35 | 显示全部楼层 |阅读模式
有510张图片,想要用excel批量重命名(名字有空格),搜了网上的教程,用ren命令一直执行不成功,研究了很久没能结果。

想用vba解决,论坛看了好多帖子,没找到我想要的答案,只能求助,谢谢大神指点啦。

image.jpg

image.png
image.png

单词密码.rar

91.36 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2020-11-14 16:50 来自手机 | 显示全部楼层
这玩意去找找批量重命名工具好了,搜索关键词
春林重命名

TA的精华主题

TA的得分主题

发表于 2020-11-14 17:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先批量获取原文件名,再改名,你的原始表中路径也不完整,我给你模拟了一下。
  1. Public jg(), khm&, tms#                               '
  2. Private Fso As Object, myPath As String
  3. Sub 选择要批量重命名文件的文件夹()
  4.     Dim Fo, SHT As Worksheet
  5.     Sheets("修改文件名").Activate
  6.     Sheets("修改文件名").Range("A1").Value = "原始路径"
  7.     Sheets("修改文件名").Range("b1").Value = "原文件名"
  8.     Sheets("修改文件名").Range("c1").Value = "新文件名"
  9.     With Application.FileDialog(msoFileDialogFolderPicker)
  10.         .Title = "请选择要提取与导入或重命名的图片或文件所在的文件夹"
  11.         .Show
  12.         If .SelectedItems.Count = 0 Then Exit Sub
  13.         myPath = .SelectedItems(1) & ""
  14.     End With
  15.     Set Fso = CreateObject("Scripting.FileSystemObject")
  16.     Set Fo = Fso.getfolder(myPath)
  17.     Call 递归(Fo)

  18. End Sub
  19. Sub 获取文件名(Folder)
  20.     Dim Fi, filename As String, r As Integer
  21.     For Each Fi In Folder.Files
  22.         r = Range("A65536").End(xlUp).Row + 1
  23.         filename = Fi.Name
  24.         Cells(r, 1) = Folder.path & ""
  25.         Cells(r, 2) = Fso.getbasename(filename)
  26.         Cells(r, 4) = "." & Fso.GetExtensionName(filename)
  27.         r = r + 1
  28.     Next
  29. End Sub

  30. Sub 递归(Folder)
  31.     Dim Fi, Fo
  32.     Call 获取文件名(Folder)
  33.     If Folder.subfolders.Count > 0 Then
  34.         For Each Fo In Folder.subfolders
  35.             Call 递归(Fo)
  36.         Next
  37.     End If
  38. End Sub
  39. Sub 文件批量重命名()
  40.     On Error Resume Next
  41.     Dim i As Integer, r As Integer, rng As Range
  42.     r = Range("A65536").End(xlUp).Row
  43.     For Each rng In Range("C2:C" & r)
  44.         If rng = "" Then MsgBox "请将新文件名填写完整!", 64, "提示": Exit Sub
  45.     Next
  46.     For i = 2 To Range("A65536").End(xlUp).Row
  47.         Name Cells(i, 1) & Cells(i, 2) & Cells(i, 4) As Cells(i, 1) & Cells(i, 3) & Cells(i, 4)
  48.     Next
  49.     MsgBox "文件名修改完成,请到文件所在文件夹查看!", 64, "提示"
  50. End Sub

  51. <b>
  52. </b>
复制代码
新建文件夹 (2).rar (59.81 KB, 下载次数: 38)



TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-14 19:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
考试加油站 发表于 2020-11-14 17:04
先批量获取原文件名,再改名,你的原始表中路径也不完整,我给你模拟了一下。

你好,附件是破坏的,打不开,能重新发一遍吗?谢谢了

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-14 20:04 | 显示全部楼层
lilyhcn1 发表于 2020-11-14 16:50
这玩意去找找批量重命名工具好了,搜索关键词
春林重命名

找了好几个抖不适合,你说的春林也不行,源文件导入后,没有按照顺序排列不能智能对应名字

TA的精华主题

TA的得分主题

发表于 2020-11-14 20:12 | 显示全部楼层
434814200 发表于 2020-11-14 19:50
你好,附件是破坏的,打不开,能重新发一遍吗?谢谢了

我测试附件正常,你可以下载新版的解压软件打开

TA的精华主题

TA的得分主题

发表于 2020-11-14 20:17 | 显示全部楼层
434814200 发表于 2020-11-14 20:04
找了好几个抖不适合,你说的春林也不行,源文件导入后,没有按照顺序排列不能智能对应名字

文件名中不能有":"啊,去掉就正常了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-14 21:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-9-23 00:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
考试加油站 发表于 2020-11-14 17:04
先批量获取原文件名,再改名,你的原始表中路径也不完整,我给你模拟了一下。

太厉害了,这就是我苦苦寻找的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 02:31 , Processed in 0.042255 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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