ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 不打开excel如何从从20万份文件(200000)中批量提取手机号码在线急盼高手支持

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-12 13:45 来自手机 | 显示全部楼层
好牛简历 发表于 2019-2-12 13:25
若是按这样的实施方式,预计有多少步骤呢?
还想多请教一下
^V^

核心代码给你了,后面的靠自己完善而已!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-12 16:28 | 显示全部楼层
duquancai 发表于 2019-2-12 13:45
核心代码给你了,后面的靠自己完善而已!

收到,我再根据大家的帮助,现在一步步的处理
非常劳驾,若是再有不会的地方,专门发上来,请教大伙
真开心^v^

TA的精华主题

TA的得分主题

发表于 2019-2-12 17:26 | 显示全部楼层
假如数据文件都是csv格式,20W个像示例文件大小,不计输出,1小时内可以完成。
  1. Private Fs As New FileSystemObject, Rx As RegExp, n&, a(), s
  2. Sub TQHM()
  3. t = Timer
  4. Set Rx = New RegExp
  5. Set Fs = New FileSystemObject
  6. Rx.Global = True
  7. Rx.Pattern = "\d{11}"
  8. n = 0
  9. ReDim a(1 To 1000000, 1 To 1)
  10. GetFile ThisWorkbook.Path & ""
  11. [e1] = Timer - t
  12. Range("a1:a" & n) = a
  13. End Sub
  14. Sub GetFile(p$)
  15. For Each f In Fs.GetFolder(p).Files
  16.   If f Like "*.csv*" Then
  17.     s = Fs.OpenTextFile(f).ReadAll
  18.     For Each c In Rx.Execute(s)
  19.       n = n + 1
  20.       a(n, 1) = c
  21.     Next
  22.   End If
  23. Next
  24. For Each pp In Fs.GetFolder(p).SubFolders
  25.   GetFile CStr(pp)
  26. Next
  27. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-12 17:35 | 显示全部楼层
Zamyi 发表于 2019-2-12 17:26
假如数据文件都是csv格式,20W个像示例文件大小,不计输出,1小时内可以完成。

1,非常感谢
2,文件格式会有几千种(目前就是分步执行)
某一类来一批
这样的话,咱们还能扩展么?
再次感谢^V^

TA的精华主题

TA的得分主题

发表于 2019-2-12 17:42 | 显示全部楼层
怎么看起来好像是在搞电诈的,收集那么多的手机号码。

TA的精华主题

TA的得分主题

发表于 2019-2-12 19:36 来自手机 | 显示全部楼层
几千种格式?文件格式有这么多种?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-12 20:07 | 显示全部楼层
乐乐2006201505 发表于 2019-2-12 19:36
几千种格式?文件格式有这么多种?

https://fileinfo.com/
这在国外有一个专门的文件格式查询数据库
确实有成千上万种
你设想一下,光软件都有上千万,每种软件都有自己固有的格式哇
^V^

TA的精华主题

TA的得分主题

发表于 2019-2-12 21:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-12 22:38 | 显示全部楼层
本帖最后由 ivccav 于 2019-2-12 22:39 编辑


你有几千种文件格式,VBA是没有办法提前处理这些数据的。
很多文件格式,在电脑上如果不安装相应的软件根本打不开。
Open语句也不能打开软件专用格式(如doc,xls等都是软件专有格式)
就拿记事本来说,还有ansi,utf-8,utf-16be,utf-16le的区别,还可能不带bom,
不知道文件编码,记事本都会显示乱码(因为无法正确解码),何况软件专有格式!

建议你把文件全部列出来,按文件格式分类,然后单独处理不同格式的文件。
当然了,你那么多文件格式,肯定很多格式是无法处理的,需要你做取舍了。
只提供一个获取文件列表的VBA给你(指定文件夹,会获取该文件夹下面和子文件下面的文件)。

获取指定文件夹和子文件夹下所有文件.zip (58.06 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-13 10:38 | 显示全部楼层
ivccav 发表于 2019-2-12 22:38
你有几千种文件格式,VBA是没有办法提前处理这些数据的。
很多文件格式,在电脑上如果不安装相应的软件 ...

非常感谢你的提醒
1,文件格式分类
2,同时还有不同编码
看得出来,划分恰当
能接受你的科学办法
^V^
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-25 17:44 , Processed in 0.040699 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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