VBA - 从数组中命名变量

时间:2016-01-06 09:53:07

标签: arrays vba variables naming

早上好。 是否可以使用文本和其他变量的组合命名变量? 仅用于示例(不起作用):

Components = "AA,BB,CC"
Values = "101,102,103"
ComponentsArr = Split(Components)
ValuesArr = Split(Values)
For i = 1 To UBound(ComponentsArr)
    Let "Var" & ComponentsArr(i) = ValuesArr(i)
Next i

2 个答案:

答案 0 :(得分:1)

您可以使用dictionary来完成目的。您将键/值对添加到字典中。然后你可以使用密钥来获得价值。

设置对MS Scripting运行时的引用('Microsoft Scripting Runtime')

Components = "AA,BB,CC"
Values = "101,102,103"
ComponentsArr = Split(Components, ",")
ValuesArr = Split(Values, ",")

Dim dict As New Scripting.Dictionary
For i = LBound(ComponentsArr) To UBound(ComponentsArr)
    Call dict.Add(ComponentsArr(i), ValuesArr(i))
Next i

If dict.Exists("AA") Then
    Debug.Print dict.Item("AA") 'prints 101
End If

另请参阅:https://stackoverflow.com/a/915333/2559297

答案 1 :(得分:1)

可能更容易做到如下:

Components = Array("AA", "BB", "CC")
Values = Array("101", "102", "103")

那么你就不需要ComponentsArr和ValuesArr。

For i = LBound(Components) To UBound(Components)
    dict.Add(Components(i), Values(i))
Next i