ok that blunder fixed, fixes code, added a second test of sub
Code: (Select All)
ReDim Grid(1 To 5, 1 To 5) As Long
' LoadInitialValues
For y = 1 To 5
For x = 1 To 5
counter = counter + 1
Grid(x, y) = counter
Next
Next
ShowArrayValues Grid()
moreXPerRow Grid(), 10, 10
ShowArrayValues Grid()
moreXPerRow Grid(), 15, 12
ShowArrayValues Grid()
End
Sub moreXPerRow (arr() As Long, xpr As Long, r As Long) ' xpr x per row
Dim As Long lbx, lby, ubx, uby
lbx = LBound(arr, 1)
lby = LBound(arr, 2)
ubx = UBound(arr, 1)
uby = UBound(arr, 2)
Dim c(lbx To ubx, lby To uby) As Long
For y = lby To uby
For x = lbx To uby
c(x, y) = arr(x, y)
Next
Next
ReDim arr(xpr, r) 'nope
'ReDim _Preserve arr(xpr, r) 'nope
'ReDim _Preserve arr(lbx To xpr, lby To r)
'ReDim _Preserve arr(lbx To xpr, lby To r) As Long ' nope
For y = lby To uby
For x = lbx To uby
arr(x, y) = c(x, y)
Next
Next
End Sub
Sub ShowArrayValues (arr() As Long)
Print "Array Values:": Print
For y = 1 To UBound(arr, 2)
Print Using "Row ## "; y,
For x = 1 To UBound(arr, 1)
Print Using " ##"; arr(x, y);
Next
Print
Next
Print
End Sub
b = b + ...