Excel精英培训网

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

[已解决]请教提高遍历单元格速度的方法

[复制链接]
发表于 2021-11-16 16:06 | 显示全部楼层 |阅读模式
本帖最后由 cailinsh 于 2021-11-16 21:09 编辑

描述:表为数据的部分截取,代表原数据中的三种类型。B5:AE26绿色框中,有颜色的为原有数据,灰色部分需要用VBA生成,且颜色标记为灰色,因原数据约300万个单元格,且后续还会增加,使用For...Each...遍历单元格的方法比较耗时间,想请教一下各位高手有没有方法能提高处理速度?请高手支招,谢谢!
            

最佳答案
2021-11-16 19:39
挑战失败,1万行30列数据,处理时间3.875秒,主要是颜色设置占时间。

副本.rar

16.02 KB, 下载次数: 10

发表于 2021-11-16 16:51 | 显示全部楼层
本帖最后由 砂海 于 2021-11-16 16:55 编辑

1) 数据 用数组 运算 , 然后一次性写入
2) 格式 用批量设置 , 文本="A1,B3" , range( 文本).格式 , 这种方式会快
注意 , 文本 长度有限制. , 单元格很多的话 不能一次完成,len(文本) 需 小于255

回复

使用道具 举报

发表于 2021-11-16 17:26 | 显示全部楼层
每行30个数据,那就是1万行,应该不会太慢,我推测2秒以内,等下挑战一下。
回复

使用道具 举报

 楼主| 发表于 2021-11-16 18:52 | 显示全部楼层
大灰狼1976 发表于 2021-11-16 17:26
每行30个数据,那就是1万行,应该不会太慢,我推测2秒以内,等下挑战一下。

不好意思,我写错了。是约300万个单元格,400多列,7000多行。所有数据类型概括一下就是图中的3个类型。我现在的大概要12分钟。
回复

使用道具 举报

 楼主| 发表于 2021-11-16 18:55 | 显示全部楼层
砂海 发表于 2021-11-16 16:51
1) 数据 用数组 运算 , 然后一次性写入
2) 格式 用批量设置 , 文本="A1,B3" , range( 文本).格式 , 这种方 ...

原数据大概有400多列,数字列和文本列交叉的。灰色部分填充灰色,但原来有颜色的还要保留回原颜色。
回复

使用道具 举报

发表于 2021-11-16 19:39 | 显示全部楼层    本楼为最佳答案   
挑战失败,1万行30列数据,处理时间3.875秒,主要是颜色设置占时间。

副本.zip

594.72 KB, 下载次数: 27

评分

参与人数 2学分 +4 收起 理由
砂海 + 2 学习了 , 试了下 , 反向刷非空 , 时间没什.
cailinsh + 2 谢谢,我先消化一下。

查看全部评分

回复

使用道具 举报

发表于 2021-12-6 09:10 | 显示全部楼层
学习了 , 试了下 , 反向刷非空 , 时间没什差别

评分

参与人数 1学分 +2 收起 理由
大灰狼1976 + 2 感谢帮助

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 19:41 , Processed in 1.020007 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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