Sha*_*han 1 arrays excel performance vba loops
循环遍历一个范围 Vs 将相同的范围分配给一个数组并循环一个数组时,性能(速度)会有什么不同吗?
小智 6
循环遍历数组比查看范围要快得多。
请参阅下面的我的测试:
Option Explicit
Const strRANGE_ADDRESS As String = "A1:A100000"
Sub LoopRangeAddOne()
Dim r As Range
Dim lStart As Double
Dim lEnd As Double
lStart = Timer
For Each r In Range(strRANGE_ADDRESS)
r.Value = r.Value + 1
Next r
lEnd = Timer
Debug.Print "Duration = " & (lEnd - lStart) & " seconds"
End Sub
Sub LoopArrayAddOne()
Dim varArray As Variant
Dim var As Variant
Dim lStart As Double
Dim lEnd As Double
lStart = Timer
varArray = Range(strRANGE_ADDRESS).Value
For Each var In varArray
var = var + 1
Next var
Range(strRANGE_ADDRESS).Value = varArray
lEnd = Timer
Debug.Print "Duration = " & (lEnd - lStart) & " seconds"
End Sub
Run Code Online (Sandbox Code Playgroud)
结果:
LoopRangeAddOne 持续时间 = 2.2734375 秒
LoopArrayAddOne 持续时间 = 0.08203125 秒
这使得循环数组比循环快 96.39%。
希望这可以帮助 :)
| 归档时间: |
|
| 查看次数: |
5430 次 |
| 最近记录: |