Will there be any difference in performance (speed) when looping through a range Vs assigning the same range to an Array and looping an Array?
Looping through an array is way faster than looking through a range.
See my test below:
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
Results:
LoopRangeAddOne Duration = 2.2734375 seconds
LoopArrayAddOne Duration = 0.08203125 seconds
Which makes looping through an array 96.39% faster than through a loop.
Hope this helps :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With