如何使用字符串来调用和分配已定义的值? (在VBA中)

时间:2015-01-16 10:45:55

标签: vba variable-assignment

我有一个名为MaxChart的整数变量,它的值已经是1024.现在我想用一个名字为MaxChart的字符串变量调用这个值,并给它赋一个新值。

我该如何解决这个问题?

For i = 1 To 20

    A = "MaxChart"& Cstr(i)

Next i 

然后使用A作为变量的名称并为其指定一个新值!

此功能存在MATLAB,名称为assignin

http://de.mathworks.com/help/matlab/ref/assignin.html

我不知道如何在VBA中使用它?

1 个答案:

答案 0 :(得分:1)

在VBA中无法在运行时分配变量名称。如果你真的需要使用这些变量名,你可以使用字典。

首先,您必须引用Microsoft Scripting Runtime: “Extras - References”=>检查“Microsoft Scripting Runtime”。

之后你可以使用字典并引用这样的键:

Sub Main()

    Set MaxChartDict = CreateObject("Scripting.Dictionary")

    'Create the entries with the appropriate keyname => change the second "i" 
    'to whatever value you would like
    For i = 1 To 20
        MaxChartDict.Add "MaxChart" & i, i
    Next

    'Get the values for the key "MaxChart3" and "MaxChart14"
    MsgBox (MaxChartDict("MaxChart3"))
    MsgBox (MaxChartDict("MaxChart14"))

    'Change the value for key "MaxChart3"
    MaxChartDict("MaxChart3") = "foobar"
    MsgBox (MaxChartDict("MaxChart3"))

    Set MaxChartDict = Nothing

End Sub