[算表] For...Next与Do...Until的效率比较

楼主: home0303 (Blue night)   2018-08-15 09:42:43
软件:EXCEL
版本:2010
Sub n()
For i = 1 To 999999
If ActiveCell > 20 Then Exit For
ActiveCell.Offset(1).Select
Next
End Sub
Sub y()
Do Until ActiveCell > 20
ActiveCell.Offset(1).Select
Loop
End Sub
这两种写法的效果是一样 但我不确定我的想法对不对
Q1:因为sub n有使用到变量i 所以会逐渐占用较大内存而降低效率
Q2:假如在end sub前面加一个Set i = Nothing 最后会使两种宏又恢复相同状况
Q3:假设Q2为正确 虽然最后释放变量了 但过程中还是有占用内存
所以还是Do Until的过程效率较好
非科班出身 还在摸索中 还请指教
谢谢
作者: newacc (XD)   2018-08-15 23:59:00
我自己测试两种写法没有显著差异Q1:那个i了不起就是占一个long的内存,并不会随时间而逐渐占用不是很确定你Q2写的恢复相同状况是什么意思你现在两种写法,第一种的优点是,如果资料里没有>20的数程式在搜寻一定次数后就会停止,但第二种写法会一直跑,跑到格子结束没办法往下offset才会跳错误停止而两者效率都不高,因为你一直要求excel去选取新的格子提供我的测资和第三种写法给你参考http://bit.ly/2MuQg11
楼主: home0303 (Blue night)   2018-08-16 11:00:00
谢谢N大指导 小弟研究看看

Links booklink

Contact Us: admin [ a t ] ucptt.com