ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 提速,提取4000多个txt,耗时56.39秒,谢谢prome3、wanghan519、lxdexcel等诸位老师!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-12 14:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lhj323323 发表于 2024-2-12 13:31
提取全部4415支,耗时18秒!!

这个没提示拒绝权限吗?你是怎么解决拒绝权限的问题的。

还有就是为什么上面说 6.13 秒,这里又是 18.38 秒,你对代码做了哪些修改?

我自己运行的时候,第一次运行要 27 秒,第二次以及后面的所有运行时间都只需要 3 秒左右。猜测是 CPU 或者 VBA 编译器在运行时做了缓存优化。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-12 14:51 | 显示全部楼层
prome3 发表于 2024-2-12 14:41
这个没提示拒绝权限吗?你是怎么解决拒绝权限的问题的。

还有就是为什么上面说 6.13 秒,这里又是 18. ...

既然无法定位到【同路径】,我就只能暂时不管这个问题
仍采用你的原有语句(没有添加任何修改的语句)

第一次说的6.13秒,数据源仅1081个
第二次则是全部4415个txt

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-12 14:53 | 显示全部楼层
prome3 发表于 2024-2-12 14:41
这个没提示拒绝权限吗?你是怎么解决拒绝权限的问题的。

还有就是为什么上面说 6.13 秒,这里又是 18. ...

CPU 或者 VBA 编译器在运行时做了缓存优化。
的确可能是这个原因,如同WIN10的重启一样,并不是真正意义的重启。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-12 14:54 | 显示全部楼层
perfect131 发表于 2024-2-12 14:13
open读取大文件 几十M的文件(几十万、几百万行的txt)时比较慢

还是用 fso的OpenTextFile才是最快的方 ...

的确,硬件也是一项重要的因素。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-12 14:59 | 显示全部楼层
prome3 发表于 2024-2-12 14:41
这个没提示拒绝权限吗?你是怎么解决拒绝权限的问题的。

还有就是为什么上面说 6.13 秒,这里又是 18. ...

好奇怪,第二次运行,耗时减一半。
快照9.png

TA的精华主题

TA的得分主题

发表于 2024-2-12 15:29 | 显示全部楼层
lhj323323 发表于 2024-2-12 14:59
好奇怪,第二次运行,耗时减一半。

是吧?哈哈

但我这边运行,5000 个文件也才需要不到 4 秒。

TA的精华主题

TA的得分主题

发表于 2024-2-12 15:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
可以换个工具,4510个txt,电脑win虚拟机4核8g内存。
可以写进VBA:

2024-02-12_154109.jpg

也可以写在公式编辑栏:
2024-02-12_154703.jpg


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-12 16:11 | 显示全部楼层
prome3 发表于 2024-2-12 15:29
是吧?哈哈

但我这边运行,5000 个文件也才需要不到 4 秒。

老师:
请看下图

快照8.png

TA的精华主题

TA的得分主题

发表于 2024-2-12 16:49 来自手机 | 显示全部楼层
lhj323323 发表于 2024-2-12 16:11
老师:
请看下图

这就不是改一句代码能解决的了。

思路是,在内循环中,把制表符计数改为对日期字符串的匹配。也就是从换行符开始,判断接下来的10个字节是否等于指定日期。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-12 17:01 | 显示全部楼层
prome3 发表于 2024-2-12 16:49
这就不是改一句代码能解决的了。

思路是,在内循环中,把制表符计数改为对日期字符串的匹配。也就是从 ...

明白了,谢谢老师,晚上再来改。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 19:33 , Processed in 0.036145 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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