ET疑难千寻千解丛书之EXCEL2010编程与实践 罗刚君 章兰新 黄朝阳 编著
疑难9
如何优化过程“隐藏偶数行” 过程“隐藏偶数行”的代码如下,如何对它进行优化,使其速度更快?
- Sub 隐藏偶数行()
- Dim i As Integer
- For i = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
- If i Mod 2 = 0 Then Rows(i).Hidden = True '如果行号除以2余数为0则隐藏
- Next i
- End Sub
复制代码
è解决方案 本例速度优化可以从屏幕更新入手,关闭屏幕更新可以大大提升执行速度;而代码的写法优化则可以去除IF,提升书写速度。
í操作方法 步骤1
对程序进行优化,代码如下:
- Sub 隐藏偶数行2() '优化后,效率提高10倍左右
- Dim i As Integer, tim
- tim=timer '记录当前时间,秒为单位
- Application.ScreenUpdating=False '关闭屏幕更新
- For i=ActiveSheet.UsedRange.Rows.Count To 2 Step -1
- Rows(i).Hidden=(i Mod 2=0) '行的隐藏属性由行号除以2的余数决定
- Next i
- Application.ScreenUpdating=True '恢复屏幕更新
- MsgBox Format(timer-tim, "0.00秒") '报告时间
- End Sub
复制代码 步骤2
执行优化后的过程“隐藏偶数行2”,在笔者的电脑中对50行数据执行隔行隐藏时间为0.06 s,而优化前的过程“隐藏偶数行”则需要0.5 s。
============================= 以上摘自《EXCEL2010编程与实践》 ![](http://www.excelpx.com/data/attachment/album/201101/04/1454539jm1lz7llhxkgg39.jpg)
|