Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 11292|回复: 32

[已解决]对字典基本用法的提速

[复制链接]
发表于 2014-1-9 17:07 | 显示全部楼层 |阅读模式
test的作用:在sheet2的A列,查找sheet1的A列数据。如果找到,就在B列输入有;否则输入无。
我的机子上test的运行时间要20秒。请问可否提速?谢谢!


已绑帐号和总帐号的比对.rar (1.09 MB, 下载次数: 152)
发表于 2014-1-9 21:46 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-1-9 21:51 | 显示全部楼层
上清宫主 发表于 2014-1-9 21:46
已差不多了

谢谢上清!
可能再提速的方法就麻烦了,也难的懂吧。
回复

使用道具 举报

发表于 2014-1-9 23:55 | 显示全部楼层
换台性能好的电脑吧
回复

使用道具 举报

发表于 2014-1-10 00:52 | 显示全部楼层
爱疯 发表于 2014-1-9 21:51
谢谢上清!
可能再提速的方法就麻烦了,也难的懂吧。

晚上我自己测试的结果:
重新定义一个文本型的结果数组,可以省2~3秒。
回复

使用道具 举报

发表于 2014-1-10 00:54 | 显示全部楼层
爱疯 发表于 2014-1-9 21:51
谢谢上清!
可能再提速的方法就麻烦了,也难的懂吧。

重新定义一个结果数组
并把结果数组定义成一个字符串数组,可以减2~3秒。
回复

使用道具 举报

 楼主| 发表于 2014-1-10 09:02 | 显示全部楼层
amesman 发表于 2014-1-9 23:55
换台性能好的电脑吧

谢谢!
现在的机子,比以前用的好很多了
回复

使用道具 举报

 楼主| 发表于 2014-1-10 09:04 | 显示全部楼层
CheryBTL 发表于 2014-1-10 00:54
重新定义一个结果数组
并把结果数组定义成一个字符串数组,可以减2~3秒。

谢谢!
我试了下,只快了0.5秒。
实际应用中碰到这种情况,不知道有没有其它方法可改善
回复

使用道具 举报

发表于 2014-1-10 09:58 | 显示全部楼层
本帖最后由 CheryBTL 于 2014-1-10 10:02 编辑
爱疯 发表于 2014-1-10 09:04
谢谢!
我试了下,只快了0.5秒。
实际应用中碰到这种情况,不知道有没有其它方法可改善

数据若有按升序或降序排列的话,可能会快一点,否则就只能逐一比较,但可以增加一个条件,在包含时输入为“有”的同时,跳出 循环。

感觉字典也是这么用的,也是按某个比较高效的算法来实现匹配的。
回复

使用道具 举报

发表于 2014-1-14 13:15 | 显示全部楼层
测试了下,改用  If d(B(i, 1)) + 1 = 1 Then  来判断,结果是24秒
楼主原来的是19.3秒

所以确定楼主的方法的最快的,而且电脑业是很不错的,我配置的CPU是i5-3570,不知道楼主的cpu是什么型号

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 16:35 , Processed in 0.326813 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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