redim preserve

  • Thread starter Thread starter RobcPettit
  • Start date Start date
R

RobcPettit

hi, ive read through previous threads and im struggling to understand
dynamic arrays., specifically resizing. Basically Im using a dynamic
array 2 cols wide with variable rows. Im using ReDim Preserve
CapturePowers(1 To x, 1 To 2)
CapturePowers(x, 1) = name
CapturePowers(x, 2) = 0
Ive read you can only redim the last array which is were im lost. Im
assuming in my array that 1 to x is the rows, and 1 to 2 is the cols. I
can use redim with single arrays fine. I can work out the size Of the
array before using it and wondering if this is the best option or the
only option.
Hope this makes sense
regards Robert
 
You seem to have a good handle on this. Your choices are to work out the
size before or to create the array as 2 rows deep and X columns wide. In
other words, to transpose it. If you really needed a 'vertical' array you
could create it from the 'horizontal' array afterwards.

--
Jim
| hi, ive read through previous threads and im struggling to understand
| dynamic arrays., specifically resizing. Basically Im using a dynamic
| array 2 cols wide with variable rows. Im using ReDim Preserve
| CapturePowers(1 To x, 1 To 2)
| CapturePowers(x, 1) = name
| CapturePowers(x, 2) = 0
| Ive read you can only redim the last array which is were im lost. Im
| assuming in my array that 1 to x is the rows, and 1 to 2 is the cols. I
| can use redim with single arrays fine. I can work out the size Of the
| array before using it and wondering if this is the best option or the
| only option.
| Hope this makes sense
| regards Robert
|
 
You can only resize the last DIMENSION of a multi-dimensional array...

ReDim Preserve CapturePowers(1 To 999, 1 To x)
ReDim Preserve ThreeDimArray(1 To 999, 1 To 999, 1 To x)

.... therefore, you can add "columns" but not "rows" It's a pain in the
butt. You can write a "GridFlip" function to swap rows to columns, add a
column, and flip columns back to rows!
 
Thankyou both for your replies. Ive decided to take the easy way, and
calculate the array before using it. Easy to do than I thought, thanks
for advice.
Regards Robert
 
Back
Top