How to index a variable in VBA

J

Jared

I am trying to create a loop that will enter data according to a loop but no
success:
I have location1,Location2 Location3 Variables Up to 50 How do i correct
this so it works?

For i= 1 to 50
location(i)=Worksheets(1).cells(i).value
Next i
End Sub
 
N

NickHK

Jared,
This shows you how to use a dynamic array with Redim. If you will always
require 50 elements use can just use
Dim Locations(1 to 50) As Variant
'or if you have string/numeric values declare as such

Not sure if you really want the first 50 cells of the worksheet, but I added
the debug line so you can see where you are getting values from.

Dim Locations() As Variant
Const MIN_ELEMENT As Long = 1
Const MAX_ELEMENT As Long = 50
Dim i As Long

ReDim Locations(MIN_ELEMENT To MAX_ELEMENT)

For i = MIN_ELEMENT To MAX_ELEMENT
Debug.Print Worksheets(1).Cells(i).Address
Locations(i) = Worksheets(1).Cells(i).Value
Next i

NickHK
 
J

Jared

This was great to learn, but i still have a problem. I have a lot of
variables. location1, location2 and so on. doing Location(1) =
worksheets(i).cells(i,1).value does not work. it's having trouble with the
"Location(i)" i do not know how to define that so it doesn't give me an error

thanks

jared
 
J

Jared

I just want to add another comment that might put light on the matter.
I am actually trying to take input from a user form into cells. Now
basically that is when i get an error. I don' know how to define an already
defined variable (text box)

i have 50 boxes which i need to enter into a table.
i can do cells(3,4)=me.location1.value
cells(4,4)=me.location2.value
cells(5,4)=me.location3.value
up to 50
but that sounds stupid and not effeciant
i am sure there's a way around it.
please help
 
A

Andrew Taylor

Hi Jared,

Try this:

Dim i as Integer
For i = 1 to 50
Cells (i+2,4) = Me.Controls("Location" & i).Value
Next
 
J

Jared

IT WORKED!!!!!

THANKS..............

Andrew Taylor said:
Hi Jared,

Try this:

Dim i as Integer
For i = 1 to 50
Cells (i+2,4) = Me.Controls("Location" & i).Value
Next
 

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