来自 String 文本的 Dim 变量

Dim variable from String text

我正在尝试使循环内的向量变暗。我想在每次迭代时使用不同的名称使变量变暗,例如:

Dim a as String

For i = 1 to 10
    a = "vector_" & i
    Dim a() as Double
Next i

所以,在那种特殊情况下,我需要 10 个 Double 变量:vector_1、vector_2、vector_3...当然,代码是错误的。

有简单的方法吗?

谢谢。

您不能在循环中声明变量的名称。变量将在 运行 它们之前被编译,并且 VBA 编译器不适用于循环。

无论如何,你可以考虑创建一个字典并在循环中编写键:

Sub TestMe()

    Dim a As String
    Dim i As Long
    
    Dim foo As Object
    Set foo = CreateObject("Scripting.Dictionary")
    
    For i = 1 To 10
        a = "vector_" & i
        foo.Add a, i * i
    Next i
    
    Debug.Print foo("vector_5") 'prints 25

End Sub