A
Andrew Hall NZ
I have a 2D array, say it is 20 x 30 and I want to change any zero values to
say 10. I would have expected the following smaller example to work but it
only changes the value for 'v' rather than the value of the array members.
Sub test()
Dim ar1(1, 1) As Variant, v As Variant
ar1(0, 0) = 1
ar1(0, 1) = 1
ar1(1, 0) = 1
ar1(1, 1) = 1
For Each v In ar1
v = 2
Next
End Sub
I can do it with the following but I was surprised to find for each did not
seem to work as I would have expected
Sub test()
Dim ar1(1, 1) As Variant, v As Variant, i, j
ar1(0, 0) = 1
ar1(0, 1) = 1
ar1(1, 0) = 1
ar1(1, 1) = 1
For i = 0 To UBound(ar1, 1)
For j = 0 To UBound(ar1, 2)
ar1(i, j) = 2
Next
Next
End Sub
Andrew
say 10. I would have expected the following smaller example to work but it
only changes the value for 'v' rather than the value of the array members.
Sub test()
Dim ar1(1, 1) As Variant, v As Variant
ar1(0, 0) = 1
ar1(0, 1) = 1
ar1(1, 0) = 1
ar1(1, 1) = 1
For Each v In ar1
v = 2
Next
End Sub
I can do it with the following but I was surprised to find for each did not
seem to work as I would have expected
Sub test()
Dim ar1(1, 1) As Variant, v As Variant, i, j
ar1(0, 0) = 1
ar1(0, 1) = 1
ar1(1, 0) = 1
ar1(1, 1) = 1
For i = 0 To UBound(ar1, 1)
For j = 0 To UBound(ar1, 2)
ar1(i, j) = 2
Next
Next
End Sub
Andrew