ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 老师给的大青枣烤蹄,现交作业。

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-9 15:52 | 显示全部楼层
本帖已被收录到知识树中,索引项:Range对象
原帖由 Zamyi 于 2010-12-9 15:42 发表

只是取巧而已,如果不在同一列,那没办法。
不过微软很多东西觉得效率并不好,唯独对于排序情有独钟。

老师谦虚了!每个人都在自己思维范围内、寻求最优解,绝对不是取巧。

TA的精华主题

TA的得分主题

发表于 2010-12-9 17:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看了各位的讨论做了一个测试,还算有点收获

串的个数与每批染色的数量可以在表格中未填入!
Union作业.rar (278.76 KB, 下载次数: 35)

            Cells(3, "C").Offset(jj - 1, ii - 1) = Format(Timer - AAA, "0.0000")
这样改为4位显不吧

我用6W测试,才0.2656S
XP2+off2003,1.8G内存  1.86MHZ

[ 本帖最后由 sunsoncheng 于 2010-12-9 17:19 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-9 17:23 | 显示全部楼层
原帖由 sunsoncheng 于 2010-12-9 17:12 发表
看了各位的讨论做了一个测试,还算有点收获

串的个数与每批染色的数量可以在表格中未填入!
838690

            Cells(3, "C").Offset(jj - 1, ii - 1) = Format(Timer - AAA, "0.0000")
这样改为4位显不吧

...

多谢老师赐教!我得仔仔细细地琢磨琢磨!
老师的数据透视表也超强!敬礼!!!!!

TA的精华主题

TA的得分主题

发表于 2010-12-9 17:23 | 显示全部楼层
按照这个测试
用UNION串的单元格数最多是36再多就出错了

每次染色的个数最好在200~300之间,
用了这种小批量处理后速度是快多了

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-9 17:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 sunsoncheng 于 2010-12-9 17:23 发表
按照这个测试
用UNION串的单元格数最多是36再多就出错了

每次染色的个数最好在200~300之间,
用了这种小批量处理后速度是快多了

老师你好!能描述一下,A列数据旁边的数据的意思吗?谢谢先!!!

TA的精华主题

TA的得分主题

发表于 2010-12-9 18:59 | 显示全部楼层
原帖由 sunsoncheng 于 2010-12-9 17:23 发表
按照这个测试
用UNION串的单元格数最多是36再多就出错了

每次染色的个数最好在200~300之间,
用了这种小批量处理后速度是快多了


不错不错,Excel很多内部函数都是数量一增加就变得缓慢,出错,真不可靠啊。

附答Zamyi,会取巧也是一种长处啊,我当时就没想到两个辅助列的办法,我最近总是用复杂的代码去解决问题,要自我反省一下了。

总结一下:第一优先当然是条件格式,第二我想应该是SpecialCells了,分批每次处理1万好了,代码会很简单易懂。

Union还是留待大量不相邻区域的时候再说吧。

TA的精华主题

TA的得分主题

发表于 2010-12-9 19:29 | 显示全部楼层
象下面这些我们要注意
1    比如 redim arr(1 to ubound(ar),1 to 10)
     我们尽量 m=  (1 to ubound(ar))     ,然后再 redim arr(1 to m , 1 to 10)   ‘也可提高一点速度
2    表格内既有大量公式的,又想用VBA
     Application.Calculation = xlCalculationManual
    结束前
  Application.Calculation = xlCalculationAutomatic
3  在程序中,不再派用场的,不再公用的, 对象,要释放内存
  比如, Erase arr  , set rng=nothing .set ado ,rst =nothing  等等

[ 本帖最后由 office2008 于 2010-12-9 19:47 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-12-9 19:53 | 显示全部楼层

回复 72楼 sunsoncheng 的帖子

你是否发现你的宏对末尾一些随机数未作处理!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-9 20:03 | 显示全部楼层
帮忙测试这个10W多少秒 填色测试.rar (661.88 KB, 下载次数: 22)

TA的精华主题

TA的得分主题

发表于 2010-12-9 20:44 | 显示全部楼层
10万行0.8S左右
512内存 23.png

VBA - Union函数大量修改单元格格式的示例.rar (701.66 KB, 下载次数: 80)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 22:38 , Processed in 0.048053 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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