3 dimensional array

G

gti_jobert

Hi again all - having some problems with this! I have the folling loop
to put my values from 9 label boxes on a userform in an array;


Code:
--------------------

Static Counter As Long
Counter = Counter + 1
ReDim Preserve ary(1 To 3, 1 To Counter)

For i = 1 To 3

ary(1, i, Counter) = MachineNumber
ary(2, i, Counter) = Controls("lblDTCode" & i).Caption
ary(3, i, Counter) = Controls("lblDTDuration" & i).Caption

Next i

--------------------


which works fine - my array is filled! But how do I get all the values
out using another button on the same form? Been trying the following
with no joy;


Code:
--------------------


i = 1
j = 0
Do
For p = 1 To 4
ActiveCell.Offset(j, 6) = ary(2, p, i)
ActiveCell.Offset(j, 7) = ary(3, p, i)
Next p
i = i + 1
j = j + 1
Loop Until i = CountPopulatedGrid + 1
 
B

Bob Phillips

If you ditch the 3rd dimension, you can simply use

For i = 1 To 3

ary(1, i) = machinenumber
ary(2, i) = Controls("lblDTCode" & i).Caption
ary(3, i) = Controls("lblDTDuration" & i).Caption

Next i
ActiveCell.Resize(UBound(ary, 1), UBound(ary, 2)) = ary


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)
 
T

Tom Ogilvy

You contention that "which works fine" is not believeable. You redim your
array with two dimensions and then attempt to address it with 3 dimensions.
Perhaps you posted some earlier code that you have since changed.

In any event, if your array is declared as public, then you would just loop
through it in your other routine, same as you are doing in the code that
works. You can address the limits/bounds of the array with

for i = lbound(ary,1) to ubound(ary,1)
for j = lbound(ary,2) to ubound(ary,2)
' and possibly although unlikely
for k = lbound(ary,3) to ubound(ary,3)
msgbox "ary(" & i & ", " & j & ", " & k & )=" & ary(i,j,k)
next k
next j
next i
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top