我想通过使用两个不同的字符串构造变量的名称来获取变量的值。
将其分解到最低限度:
TA = 1
TB = 2
TC = 3
B = 2
Messagebox.Show(B*("T"+"B"))
我知道这是最小的,并且我不想在复杂的代码中使用它。我也知道有这样做的方法,但是我在功能最少的环境中工作。
那么有基本的方法可以做到这一点吗?
答案 0 :(得分:7)
您不能像这样动态地引用变量。这是违法的。通常,当人们开始以这种方式思考时,答案是“使用数组”。相反,按照您的示例,最好使用字典:
使用字典的示例:
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "TA", 1
dict.Add "TB", 2
dict.Add "TC", 3
b=2
MessageBox.Show(B*(dict("T" & "B")))
该"T" & "B"
被串联在一起成为"TB"
,然后在您的字典value
的{{1}} key
处获取"TB"
dict
并进行数学运算。
2
非常好学,因为它功能强大。您可以将任何内容存储在字典中(包括其他字典),而不仅仅是数字和字符串值。
最后,此示例对字典对象使用了后期绑定,这很不错,但是在编写代码时没有代码提示,并且从头开始学习而没有代码提示是很浪费的。
请转至“工具” >>“参考”,然后选中列表中的“ Microsoft脚本运行时”框。然后,您可以像使用原生字典一样使用字典:
Dictionary
对于具有数组的解决方案。通常人们会问类似的东西:
“为什么不起作用?”
Dim dict As Dictionary
Set dict = New Dictionary
dict.Add "TA", 1
....
与这里的问题非常相似。可以使用数组代替“动态变量”:
Dim var1, var2, var3, var4
var1="hi "
var2="there "
var3="what's "
var4="up."
For i=1 to 4
output=output & (var & i)
Next
MsgBox(output)