How to initialize a multi-dimensional array

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have tried to search the web, but have now found a good way to initialize
a two (or more) dimensional array. Its easy in most other languages. Is
there a good way to do it in excel vab?

Thanks!
 
What the..!
For i = 1 to N
For j = 1 to M
MyArray(i, j) = whatever
Next j
Next i

Sounds like you know this already and want something else, but thought
I'd send it just in case.
regards
Paul
 
You can initialize or reinitialize a multi-dimensional array with the Redim
instruction :
ReDim MyArray(1 To 3, 2 To 5, 1 To 2)

Mishell
 
You can't initialize an array (with the exception of a single variant
containing an array) to values other than the standard defaults
without looping through each dimension or assigning each element by
itself. So, the answer is really that you can't do it.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional,
Excel, 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com
 
You can't initialize an array (with the exception of a single variant
containing an array) to values other than the standard defaults
without looping through each dimension or assigning each element by
itself. So, the answer is really that you can't do it.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional,
Excel, 1998 - 2010
Pearson Software Consulting, LLC
www.cpearson.com

Here's what I think is an interesting way to have a 10 * 10 array of the
value 5 without looping. I don't believe 'Sign can be threaded once.

Sub Demo()
Dim M
M = [5*TRANSPOSE(SIGN(ROW(A1:J10))*SIGN(COLUMN(A1:J10)))]
End Sub

= = = = = = =
HTH :>)
Dana DeLouis
 
That's what I was afraid of. My question was not as clear as I thought it
was, sorry. You clearly understood that I was as asking for a way to
initialize the values of an array at compile rather than execute time.
Though, I suppose there isn't so much difference with an intreperted
language.

Thanks you your reply.
 
Back
Top