[算表] 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