ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Indirectly referring to a variable (https://www.excelbanter.com/excel-programming/442930-indirectly-referring-variable.html)

ZipCurs

Indirectly referring to a variable
 
Hello,

This is probably easy ... or impossible, but I cannot figure out how to do
this. I want to assembly a variable name in code, and then get that
variable. Separate parts of my macro tell me my prefix is "Snow" and my
suffix is "Shoe". How to I get the value of "SnowShoe"? I have a lot of
these variables. The following does not work:

VariableIWant="Snow" & "Shoe"
NumberINeed=5+VariableIWant

I ended up with a bunch of If statements. Effective but not too elegant.
Any help would be appreciated. Thank you in advance.

JLGWhiz[_2_]

Indirectly referring to a variable
 
I am not clear on what you are after, but if you place a variable inside
quote marks, it becomes a string and the value is what you see. e.g. If the
variable Snow = 25, when you place it inside quotes then "Snow" = "Snow".
So, if you want the values of Snow and Shoe to be added it would be
VariableWant = Snow + Shoe to get VariableWant to equal the sum of Snow +
Shoe. Then you could add NumberNeed = 5 + VariableWant and get a numeric
value. But if you use quotes around the variables, the all you get is
concatenated strings.


"ZipCurs" wrote in message
...
Hello,

This is probably easy ... or impossible, but I cannot figure out how to do
this. I want to assembly a variable name in code, and then get that
variable. Separate parts of my macro tell me my prefix is "Snow" and my
suffix is "Shoe". How to I get the value of "SnowShoe"? I have a lot of
these variables. The following does not work:

VariableIWant="Snow" & "Shoe"
NumberINeed=5+VariableIWant

I ended up with a bunch of If statements. Effective but not too elegant.
Any help would be appreciated. Thank you in advance.




Tim Williams[_4_]

Indirectly referring to a variable
 
Where/how is the variable "SnowShoe" defined ?

If you really want to map data this way then you might use (eg) a
dictionary object

'**********************
dim d as object
set d=createobject("scripting.dictionary")
d.add "SnowShoe", 20
d.add "RainShoe", 10
Msgbox d.Item("Snow" & "Shoe") '20
'**********************



Tim


On May 28, 8:32*am, ZipCurs wrote:
Hello,

This is probably easy ... or impossible, but I cannot figure out how to do
this. *I want to assembly a variable name in code, and then get that
variable. *Separate parts of my macro tell me my prefix is "Snow" and my
suffix is "Shoe". *How to I get the value of "SnowShoe"? *I have a lot of
these variables. *The following does not work:

VariableIWant="Snow" & "Shoe"
NumberINeed=5+VariableIWant

I ended up with a bunch of If statements. *Effective but not too elegant. *
Any help would be appreciated. *Thank you in advance.



ZipCurs

Indirectly referring to a variable
 
Hello Tim,

I am not sure it matters but lets say that ShowShoe is Double. I get to a
situation where I figure out what variable I want, and then need to get it.
So I reach a point where I know I want SnowShoe, but I need a way of getting
it. I think something like what you gave me would work fine. I will try it
later.

"Tim Williams" wrote:

Where/how is the variable "SnowShoe" defined ?

If you really want to map data this way then you might use (eg) a
dictionary object

'**********************
dim d as object
set d=createobject("scripting.dictionary")
d.add "SnowShoe", 20
d.add "RainShoe", 10
Msgbox d.Item("Snow" & "Shoe") '20
'**********************



Tim


On May 28, 8:32 am, ZipCurs wrote:
Hello,

This is probably easy ... or impossible, but I cannot figure out how to do
this. I want to assembly a variable name in code, and then get that
variable. Separate parts of my macro tell me my prefix is "Snow" and my
suffix is "Shoe". How to I get the value of "SnowShoe"? I have a lot of
these variables. The following does not work:

VariableIWant="Snow" & "Shoe"
NumberINeed=5+VariableIWant

I ended up with a bunch of If statements. Effective but not too elegant.
Any help would be appreciated. Thank you in advance.


.


ZipCurs

Indirectly referring to a variable
 

Thank you for responding. I think that Tim Williams' response is closer to
the mark. Basically, I have a bunch of variables, and am looking for an easy
way to get what I want. I want to use SnowShoe this time. Next time I might
want HikingBoot.

"JLGWhiz" wrote:

I am not clear on what you are after, but if you place a variable inside
quote marks, it becomes a string and the value is what you see. e.g. If the
variable Snow = 25, when you place it inside quotes then "Snow" = "Snow".
So, if you want the values of Snow and Shoe to be added it would be
VariableWant = Snow + Shoe to get VariableWant to equal the sum of Snow +
Shoe. Then you could add NumberNeed = 5 + VariableWant and get a numeric
value. But if you use quotes around the variables, the all you get is
concatenated strings.


"ZipCurs" wrote in message
...
Hello,

This is probably easy ... or impossible, but I cannot figure out how to do
this. I want to assembly a variable name in code, and then get that
variable. Separate parts of my macro tell me my prefix is "Snow" and my
suffix is "Shoe". How to I get the value of "SnowShoe"? I have a lot of
these variables. The following does not work:

VariableIWant="Snow" & "Shoe"
NumberINeed=5+VariableIWant

I ended up with a bunch of If statements. Effective but not too elegant.
Any help would be appreciated. Thank you in advance.



.


Norie

Indirectly referring to a variable
 
You can't construct varibale names like this in VBA.

Using a dictionary might be a workaround, so might an array approach.

ZipCurs

Indirectly referring to a variable
 
Hello Tim Williams,

Your recommendation works great. The only addition is to use

d.item("SnowShoe")= NewValue

to make "SnowShoe" behave like a variable and be able to call it by
assembling the name. Thanks.

"Tim Williams" wrote:

Where/how is the variable "SnowShoe" defined ?

If you really want to map data this way then you might use (eg) a
dictionary object

'**********************
dim d as object
set d=createobject("scripting.dictionary")
d.add "SnowShoe", 20
d.add "RainShoe", 10
Msgbox d.Item("Snow" & "Shoe") '20
'**********************



Tim


On May 28, 8:32 am, ZipCurs wrote:
Hello,

This is probably easy ... or impossible, but I cannot figure out how to do
this. I want to assembly a variable name in code, and then get that
variable. Separate parts of my macro tell me my prefix is "Snow" and my
suffix is "Shoe". How to I get the value of "SnowShoe"? I have a lot of
these variables. The following does not work:

VariableIWant="Snow" & "Shoe"
NumberINeed=5+VariableIWant

I ended up with a bunch of If statements. Effective but not too elegant.
Any help would be appreciated. Thank you in advance.


.



All times are GMT +1. The time now is 06:51 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com