Learning VBA for Excel, I am trying to do as much of my coding without the use of loops. As an exercise, multiplying the numbers of two adjacent ranges, I came up with this:
Sub multiply_range()
Dim a, b, c As Range
Set a = Range("a1:a5")
Set b = Range("b1:b5")
Set c = Range("c1:c5")
a.Value = Evaluate("row(" & a.Address & ")")
b.Value = Evaluate("row(" & b.Address & ")")
c.Value = Evaluate(a.Address & "*" & b.Address)
End Sub
Which works quite nicely. Now I want to do something similar but using arrays instead. Starting with this code:
Sub multiply_array()
Dim aArr(), bArr(), cArr()
ReDim aArr(5), bArr(5), cArr(5)
For i = 0 To 4
aArr(i) = i + 1
bArr(i) = i + 1
Next
For i = 0 To 4
cArr(i) = aArr(i) * bArr(i)
Next
For i = 0 To 4
Range("D" & i + 1).Value = cArr(i)
Next
End Sub
How would you replace any one of these FOR loops with code that doesn't use loops?