1
我不知道这样做:VBA For循环性能
For a = Start_row To Sheet1.UsedRange.Rows.Count Step 1
将意味着在每次执行检查For
循环条件,它必须重新计算Sheet1.UsedRange.Rows.Count
声明。也许它是第一次存储在内存中?
我不知道这样做:VBA For循环性能
For a = Start_row To Sheet1.UsedRange.Rows.Count Step 1
将意味着在每次执行检查For
循环条件,它必须重新计算Sheet1.UsedRange.Rows.Count
声明。也许它是第一次存储在内存中?
不,For
循环的结尾仅在开始时评估。
此外,要注意的是,UsedRange
:
我不会遍历无论如何,任何范围。获取工作表数据的副本到一个数组中并使用它。这可能会更快。 – pintxo
否,它将基于第一个循环保持静态。如果计数第一次返回300,它将始终为300,直到For循环在start_row处结束。 –
好的,谢谢Scott。很有帮助。 pinxto:不错的workarround也。 –