ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

提取文件夹下所有文件名中最大的数值。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-19 12:28 | 显示全部楼层 |阅读模式
各位大神,想要提取当前文件夹下,最大两个数字的文件名到a2,a3单元格。例如提取这个文件夹中的img006.jpg,img005到单元格中。所有文件都是按照img****.jpg命名的。多的时候,有上万个文件。恳请大家赐教。

提取最大数字.zip

116.83 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-19 12:46 | 显示全部楼层
Mid(Left(fl.Name, InStr(fl.Name, ".") - 1), InStr(fl.Name, "-") + 1) * 1   这个是什么意思,哪位大神可以帮我解答一下吗?

TA的精华主题

TA的得分主题

发表于 2019-12-19 12:47 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-19 12:54 | 显示全部楼层
liulang0808 发表于 2019-12-19 12:47
http://club.excelhome.net/thread-1258425-1-1.html
获取文件名资料,供参考

谢谢,我再研究研究。

TA的精华主题

TA的得分主题

发表于 2019-12-19 12:57 | 显示全部楼层
  1. Sub tiqu()
  2.     Dim fileN$, cxFile$, str$, arr, i&, j&, k&
  3.     fileN = ThisWorkbook.Path & ""
  4.     cxFile = Dir(fileN & "*.jpg")
  5.     str = Mid(Right(cxFile, 7), 1, 3)
  6.     Do While cxFile <> ""
  7.         cxFile = Dir
  8.         str = str & "," & Mid(Right(cxFile, 7), 1, 3)
  9.         If cxFile = "" Then Exit Do
  10.     Loop
  11.     arr = Split(Mid(str, 1, Len(str) - 1), ",")
  12.     For i = 0 To UBound(arr)
  13.         k = Application.Max(j, CLng(arr(i)))
  14.         j = CLng(arr(i))
  15.     Next
  16.     Sheet1.[A2] = "img" & Mid(CStr(1000 * 1 + k), 2, 4)
  17.     Sheet1.[A3] = "img" & Mid(CStr(1000 * 1 + k - 1), 2, 4)
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-19 13:46 | 显示全部楼层

谢谢帮助。我现在的主要问题还是出在提取img  到.之间数值的问题。有些是3位,有些事4位的。刚才测试了下您的代码,arr = Split(Mid(str, 1, Len(str) - 1), ",")  这个地方跳错了。

TA的精华主题

TA的得分主题

发表于 2019-12-19 13:48 | 显示全部楼层
2253671050 发表于 2019-12-19 13:46
谢谢帮助。我现在的主要问题还是出在提取img  到.之间数值的问题。有些是3位,有些事4位的。刚才测试了下 ...

哦哦, 我还以为只有 3位呢, 我改一下

TA的精华主题

TA的得分主题

发表于 2019-12-19 14:07 | 显示全部楼层
2253671050 发表于 2019-12-19 13:46
谢谢帮助。我现在的主要问题还是出在提取img  到.之间数值的问题。有些是3位,有些事4位的。刚才测试了下 ...

香川老师的两个自定义函数 直接可以解决你的问题。自己论坛找找 文件夹的遍历和数组排序。直接找到文件 然后重新排序倒序,取上面2个就可以了

TA的精华主题

TA的得分主题

发表于 2019-12-19 14:26 | 显示全部楼层
2253671050 发表于 2019-12-19 13:46
谢谢帮助。我现在的主要问题还是出在提取img  到.之间数值的问题。有些是3位,有些事4位的。刚才测试了下 ...
  1. Sub tiqu()
  2.     Dim fileN$, cxFile$, str$, arr1, i&, j&, k&, n&
  3.     fileN = ThisWorkbook.Path & ""
  4.     cxFile = Dir(fileN & "*.jpg")
  5.     str = Mid(cxFile, InStr(cxFile, "g") + 1, InStr(cxFile, ".") - 4)
  6.     Do While cxFile <> ""
  7.         cxFile = Dir
  8.         If cxFile = "" Then Exit Do
  9.         str = str & "," & Mid(cxFile, InStr(cxFile, "g") + 1, InStr(cxFile, ".") - 4)
  10.     Loop
  11.     arr1 = Split(str, ",")
  12.     Sheet1.[A2] = "img" & arr1(UBound(arr1)) & ".jpg"
  13.     Sheet1.[A3] = "img" & arr1(UBound(arr1) - 1) & ".jpg"
  14.    
  15. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-19 15:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
非常非常感谢大神的帮忙。这个地方增加一个\,fileN = ThisWorkbook.Path & "\"   完美解决了。谢谢谢谢!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-24 23:37 , Processed in 0.044108 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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