2017-02-06 106 views
1

我不知道這樣做:VBA For循環性能

For a = Start_row To Sheet1.UsedRange.Rows.Count Step 1 

將意味着在每次執行檢查For循環條件,它必須重新計算Sheet1.UsedRange.Rows.Count聲明。也許它是第一次存儲在內存中?

+2

我不會遍歷無論如何,任何範圍。獲取工作表數據的副本到一個數組中並使用它。這可能會更快。 – pintxo

+0

否,它將基於第一個循環保持靜態。如果計數第一次返回300,它將始終爲300,直到For循環在start_row處結束。 –

+0

好的,謝謝Scott。很有幫助。 pinxto:不錯的workarround也。 –

回答

0

不,For循環的結尾僅在開始時評估。

此外,要注意的是,UsedRange

  • 不一定開始在第一行
  • 並不一定在最後一個非空行結束