how do i fill an array? tia

J

JasonK

i know this is probably pretty basic but i can't find it in my dummies
book.

i have an array labeled M.
i've dimensioned it to 100 using the statement:

dim m(100)

i tried to run a for/next loop to fill it but it isn't working

for x = 1 to 100
m(x)=5
next x

this should fill array with 5's but it's giving me an error:
sub or function not defined.

thanks for your help
fred
 
A

Alan Beban

The following works fine; don't know what's giving you an error.

Sub abtest3()
Dim m(100)
For x = 1 To 100
m(x) = 5
Next x
Debug.Print m(50) '<--Prints 5
End Sub

Alan Beban
 
A

Alan Beban

Gary said:
see if this will work

Sub test()
Dim arr As Variant
Dim x As Integer, n As Integer
ReDim arr(100)

For n = 1 To 100
ReDim Preserve arr(1 To n)'<--What's the point of this?
arr(n) = 5
Next n
End Sub

Alan Beban
 
N

NickHK

I can see why you may get "Variable Not defined" (referring to "x"), if you
have Option Explicit set, as you should.
But not Sub/function not defined.
Unless there is other code that you have not shown.

Also, unless you have "Option Base 1" set, you are actually creating an
array with 101 elements and missing the first element in your loop.
And it is better to explicit declare your data type to avoid the default
Variant.

NickHK
 
J

JasonK

Gary,
that worked great. i'm not sure why it worked, but it did.
thanks for your time.
fred
 
G

Gary Keramidas

see if this will work

Sub test()
Dim arr As Variant
Dim x As Integer, n As Integer
ReDim arr(100)

For n = 1 To 100
ReDim Preserve arr(1 To n)
arr(n) = 5
Next n
End Sub
 

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