ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] *****如何批量让同文件夹的图片文件名,跟文件夹名一样?******

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-4-9 11:35 | 显示全部楼层 |阅读模式
如何批量让同文件夹的图片文件名,跟文件夹名一样?
例如2009文件夹里有三张图,把这三张图命名为2009  2009(1) 2009(2)
新建文件夹 (2).rar (2.72 KB, 下载次数: 79)


TA的精华主题

TA的得分主题

发表于 2015-4-9 12:23 | 显示全部楼层
你试下吧,如果相同文件名的文件已经存在,会报错

新建文件夹 (2).7z

14.38 KB, 下载次数: 86

TA的精华主题

TA的得分主题

发表于 2015-4-9 12:34 | 显示全部楼层
  1. Sub lqxs()
  2. Dim fp$, fn, i&, aa, nm$, nm1$
  3. Set d = CreateObject("Scripting.Dictionary")
  4.     With Application.FileDialog(msoFileDialogFolderPicker)
  5.         .Title = "请选择目标文件夹"
  6.         .Show
  7.         If .SelectedItems.Count = 0 Then MsgBox "没有选择文件夹,程序退出!", 64, "提示": Exit Sub
  8.         fp = .SelectedItems(1)
  9.     End With
  10.     aa = InStrRev(fp, "")
  11.     nm = Right(fp, Len(fp) - aa)
  12.     fn = Dir(fp & "\*.png")
  13.     Do While fn <> ""
  14.         i = i + 1
  15.         If i = 1 Then
  16.             nm1 = nm & ".png"
  17.         Else
  18.             nm1 = nm & "(" & i - 1 & ").png"
  19.         End If
  20.         Name fp & "" & fn As fp & "" & nm1
  21.         fn = Dir
  22.     Loop
  23. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-4-9 12:35 | 显示全部楼层
请见附件。

图片文件改名.rar

15.06 KB, 下载次数: 187

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-9 13:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
蓝桥玄霜 发表于 2015-4-9 12:34

谢谢蓝桥版主,不过只能一个一个文件夹的选择吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-9 13:11 | 显示全部楼层
光之马 发表于 2015-4-9 12:23
你试下吧,如果相同文件名的文件已经存在,会报错

谢谢光之马大师,不过,每改一个文件名,都要点一下“确定”,能否再帮我改进下?

TA的精华主题

TA的得分主题

发表于 2015-4-9 13:13 | 显示全部楼层
make08 发表于 2015-4-9 13:11
谢谢光之马大师,不过,每改一个文件名,都要点一下“确定”,能否再帮我改进下?

  1. Public Sub 读取()
  2. Dim f, ff, fff, fff1, i%, j%
  3. On Error Resume Next
  4. i = 1
  5. Set f = CreateObject("scripting.filesystemobject")
  6. Set ff = f.getfolder(ThisWorkbook.Path)
  7. Set fff = ff.subfolders
  8. For Each fff1 In fff
  9. Sheet1.Cells(i, 1).Value = fff1.Name
  10. i = i + 1
  11. Next
  12. i = 1
  13. For i = 1 To Range("a65536").End(xlUp).Row
  14.     j = 0
  15.     Set ff = f.getfolder(ThisWorkbook.Path & "" & Cells(i, 1).Value)
  16.     Set fff = ff.Files
  17.         For Each fff1 In fff
  18.         If j = 0 Then
  19.         fff1.Name = Cells(i, 1).Value & ".jpg"
  20.         Else
  21.         fff1.Name = Cells(i, 1).Value & "(" & j & ").jpg"
  22.         End If
  23.         j = j + 1
  24.         Next
  25. Next
  26. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-9 13:45 | 显示全部楼层
光之马 发表于 2015-4-9 13:13

感谢光之马大师,解决好了,谢谢!佩服!

TA的精华主题

TA的得分主题

发表于 2017-7-20 11:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

执行不了?现在不能用了吗?

TA的精华主题

TA的得分主题

发表于 2018-9-27 09:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

有办法恢复到之前吗,不小心把桌面的文件全改成图片格式了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 03:01 , Processed in 0.051430 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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