Excel精英培训网

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

[VBA] 009-优化“隐藏偶数行”-疑难千寻千解丛书(VBA)

[复制链接]
发表于 2011-1-14 14:28 | 显示全部楼层 |阅读模式
ET疑难千寻千解丛书之EXCEL2010编程与实践
罗刚君 章兰新 黄朝阳 编著

疑难9
如何优化过程“隐藏偶数行”
过程“隐藏偶数行”的代码如下,如何对它进行优化,使其速度更快?

  1. Sub 隐藏偶数行()
  2.     Dim i As Integer
  3.     For i = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
  4.         If i Mod 2 = 0 Then Rows(i).Hidden = True '如果行号除以2余数为0则隐藏
  5.     Next i
  6. End Sub
复制代码

è解决方案
本例速度优化可以从屏幕更新入手,关闭屏幕更新可以大大提升执行速度;而代码的写法优化则可以去除IF,提升书写速度。
í操作方法
步骤1
对程序进行优化,代码如下:

  1. Sub 隐藏偶数行2()  '优化后,效率提高10倍左右
  2.   Dim i As Integer, tim
  3.   tim=timer '记录当前时间,秒为单位
  4.   Application.ScreenUpdating=False '关闭屏幕更新
  5.   For i=ActiveSheet.UsedRange.Rows.Count To 2 Step -1
  6.      Rows(i).Hidden=(i Mod 2=0) '行的隐藏属性由行号除以2的余数决定
  7.   Next i
  8.   Application.ScreenUpdating=True '恢复屏幕更新
  9.   MsgBox Format(timer-tim, "0.00秒") '报告时间
  10. End Sub
复制代码
步骤2
执行优化后的过程“隐藏偶数行2”,在笔者的电脑中对50行数据执行隔行隐藏时间为0.06 s,而优化前的过程“隐藏偶数行”则需要0.5 s。

=============================
上摘自《EXCEL2010编程与实践》


 楼主| 发表于 2011-1-14 14:30 | 显示全部楼层
回复

使用道具 举报

发表于 2011-1-14 14:31 | 显示全部楼层
回复

使用道具 举报

发表于 2011-4-9 21:34 | 显示全部楼层
{:011:}{:011:}{:011:}{:011:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-15 12:53 , Processed in 0.180140 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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