curt_grymala
04-26-2005, 08:37 AM
I was attempting to set up a For Each... statement that cycles through an array of named cells, and assigns that cell's value to a userform control. This is a variation on what I was trying to do:
Dim inputtype As String
Dim inputnum As Integer
Dim inputname
inputtype = "TextBox"
inputnum = 9
inputname = inputtype & inputnum
For Each Cell In Array(Array("PropAdd2", "MailAdd1", "MailAdd2", "TankCap1", "TankCap2", "TankCap3", _
"TankDesc1", "TankDesc2", "TankDesc3", "BusName", "Phone", "Fax", "Cell", "CompSystem", "PeakGal", _
"Route", "DesFirm", "Designer", "DesAdd", "DesPhone", "DesFax", "DesCell", "PropAdd"))
With inputname
If Cell.Value <> "" Then .Value = Cell.Value
End With
inputnum = inputnum + 1
inputname = inputtype & inputnum
Next Cell
No matter what I change, I always get some sort of error. I've tried changing the names of my object and array (For Each $object in $array), I've tried using Range($object).value, as well as just $object.value, etc. If I step through the function, it goes all the way up until the "If" statement. It then usually returns some sort of error (usually "Object required" or something like that).
Basically, what I want to do is cycle through an array of cells. If there is a value in that cell, I want to assign it as the value of the corresponding userform textbox. This is the code that I am using now. It works, but it's long, complicated, and difficult to edit (if I change one thing, I have to change it 20 times). I would really like to figure out how to set up a loop to do it for me.
Dim textrange As String
textrange = "PropAdd2"
With TextBox9
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "MailAdd1"
With TextBox10
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "MailAdd2"
With TextBox11
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankCap1"
With TextBox12
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankCap2"
With TextBox13
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankCap3"
With TextBox14
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankDesc1"
With TextBox15
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankDesc2"
With TextBox16
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankDesc3"
With TextBox17
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "BusName"
With TextBox18
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Phone"
With TextBox19
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Fax"
With TextBox20
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Cell"
With TextBox21
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "CompSystem"
With TextBox22
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "PeakGal"
With TextBox23
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Route"
With TextBox24
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesFirm"
With TextBox25
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Designer"
With TextBox26
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesAdd"
With TextBox27
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesPhone"
With TextBox28
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesFax"
With TextBox29
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesCell"
With TextBox30
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "PropAdd"
With TextBox31
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
Does anyone have any suggestions or tutorials I can check out?
Dim inputtype As String
Dim inputnum As Integer
Dim inputname
inputtype = "TextBox"
inputnum = 9
inputname = inputtype & inputnum
For Each Cell In Array(Array("PropAdd2", "MailAdd1", "MailAdd2", "TankCap1", "TankCap2", "TankCap3", _
"TankDesc1", "TankDesc2", "TankDesc3", "BusName", "Phone", "Fax", "Cell", "CompSystem", "PeakGal", _
"Route", "DesFirm", "Designer", "DesAdd", "DesPhone", "DesFax", "DesCell", "PropAdd"))
With inputname
If Cell.Value <> "" Then .Value = Cell.Value
End With
inputnum = inputnum + 1
inputname = inputtype & inputnum
Next Cell
No matter what I change, I always get some sort of error. I've tried changing the names of my object and array (For Each $object in $array), I've tried using Range($object).value, as well as just $object.value, etc. If I step through the function, it goes all the way up until the "If" statement. It then usually returns some sort of error (usually "Object required" or something like that).
Basically, what I want to do is cycle through an array of cells. If there is a value in that cell, I want to assign it as the value of the corresponding userform textbox. This is the code that I am using now. It works, but it's long, complicated, and difficult to edit (if I change one thing, I have to change it 20 times). I would really like to figure out how to set up a loop to do it for me.
Dim textrange As String
textrange = "PropAdd2"
With TextBox9
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "MailAdd1"
With TextBox10
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "MailAdd2"
With TextBox11
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankCap1"
With TextBox12
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankCap2"
With TextBox13
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankCap3"
With TextBox14
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankDesc1"
With TextBox15
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankDesc2"
With TextBox16
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "TankDesc3"
With TextBox17
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "BusName"
With TextBox18
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Phone"
With TextBox19
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Fax"
With TextBox20
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Cell"
With TextBox21
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "CompSystem"
With TextBox22
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "PeakGal"
With TextBox23
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Route"
With TextBox24
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesFirm"
With TextBox25
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "Designer"
With TextBox26
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesAdd"
With TextBox27
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesPhone"
With TextBox28
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesFax"
With TextBox29
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "DesCell"
With TextBox30
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
textrange = "PropAdd"
With TextBox31
If Range(textrange).Value <> "" Then .Value = Range(textrange).Value
End With
Does anyone have any suggestions or tutorials I can check out?