Variables in Declaring an Array
Jim,
How do I populate myArray with Range("C1:C100")?
e.g. I want myArray(0) to equal "C1".value, myArray(1) to equal
"C2".value, (& so on)
btw, This whole conversation has been emensly helpful. keep it up!
Thanks,
Jimmy
Jim Thomlinson wrote:
You are confused a bit... You can not declare a variable with an undefined
attribute. The array must be declared undimensioned. It can then be
dimensioned at run time as I have shown.
dim myArray () as String 'Undimensioned array
redim myArray(100) 'Dimension the array with 101 elements 0 to 100
myArray(0) = "tada" 'add values to the array
--
HTH...
Jim Thomlinson
"JLGWhiz" wrote:
So Jim, are you saying that if Jimmy inserts the lines of code that you have
provided that the can then use "Dim myArray(0 To n) As String and his array
will run properly? Or am I totally confused with this.
"Jim Thomlinson" wrote:
Looks like you have the hang of ReDim to me... Like I said in my original
post the only trick is to understanding the use of the preserver key word.
Preserve adds some overhead however so my origninal code should have been...
dim myArray() as sting
dim n as long
n = 0
redim myArray(n) 'Note no Preserve as there is nothing to save
myarray(n) = "this"
n = 1
redim preserve myarray(n)
myarray(n) = "that"
Redim essentially makes a new array that is the size that you specify and
then points the array variable at the new array. The preserve key word tells
the compiler to copy over the values from the old array to the new array...
--
HTH...
Jim Thomlinson
"Gary Keramidas" wrote:
i'm not as knowledgeable as you, i was just checking how it worked so i could
learn more about arrays. noticed how i "asked" instead of saying "this is how it
should be". i didn't know for sure. it should also probably be:
myarray(n) = "this"
right?
i know i don't type very well, so i understand the typo.
thanks
--
Gary
"Jim Thomlinson" wrote in message
...
My typing takes a little to be desired... I should really proof read before
hitting the Post button. You are correct on the String thing. As for the
Array(n) = "that"
it was just a quick n dirty demo. Yes n probably makes more sense...
--
HTH...
Jim Thomlinson
"Gary Keramidas" wrote:
2 things jim
you have a typo he
dim myArray() as sting (string)
and should this be:
array(n) = "that"
--
Gary
"Jim Thomlinson" wrote in message
...
Take a look for help on the redim statement (note the key work preserve is
required to not clear the values of the array when it is resized.)
dim myArray() as sting
dim n as long
n = 0
redim preserve myArray(n)
myarray(0) = "this"
n = 1
redim preserve myarray(n)
myarray(0) = "that"
--
HTH...
Jim Thomlinson
"Jimmy" wrote:
Dim myArray(0 To n) As String
The dimensions of this array change throughout.
Why can't I use the variable 'n' in the declaration?
And, more importantly, can someone help me solve this problem?
Thanks,
Jimmy
|