【问题标题】:Dim variable from String text来自字符串文本的暗淡变量
【发布时间】:2021-09-17 19:56:05
【问题描述】:

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

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……当然,那个代码是错误的。

有简单的方法吗?

谢谢。

【问题讨论】:

  • 此尝试无效。但是,为什么不将向量声明为数组呢? Dim vector(1 To 10) As Double
  • 请问需要创建这些变量的目的是什么?
  • 只是说教的好奇心,但是由于VBA总是在开头读取变量声明,我看到它不可行哈哈哈

标签: arrays vba loops variables declaration


【解决方案1】:

您不能在循环中声明变量的名称。变量要在运行前编译,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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2020-09-17
    • 1970-01-01
    • 2015-04-10
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多