使用变量命名数组

时间:2015-01-16 22:57:10

标签: arrays vba loops excel-vba excel-2010

是否可以使用不同的变量命名数组变量?例如,如果我将变量“i”定义为一个整数,其值等于我用过它的列数:

Sub varNameTest

    Dim i, j, As Integer
    i = ActiveSheet.UsedRange.Columns.Count
    ...

是否有可能然后建立名为myArray1到i之类的“i”数组?可能是这样的:

For j = 1 to i
    Dim (myArray & j())
Next i

虽然上面这个例子的语法不正确,但我只是想说明我正在尝试做什么。

编辑:所以更清楚一点,使用上面的例子,假设我在工作簿中有4张。变量i然后是4,我会有一些代码生成myArray1(),myArray2(),myArray3()和myArray4()。

2 个答案:

答案 0 :(得分:1)

你可以创建一个数组数组(虽然你的问题有点不清楚......)

Sub MyArrays()

Dim arrays()
Dim arr
Dim i, j

    i = 5 'e.g.
    ReDim arrays(1 To i)

    For j = 1 To i
        arr = Array()
        ReDim arr(1 To j)
        arrays(j) = arr
    Next j
    'reference an array by its position in "arrays"
    Debug.Print UBound(arrays(3))

End Sub

答案 1 :(得分:0)

Dim i(5) As Integer

在VBA中,您可以访问从i(0)i(5)的元素。


根据您编辑的问题,答案是否定的。您必须在代码中明确定义每个变量。

另一种选择是编写编写代码的代码 - 一种代码生成方式。实际上,通过重复代码"模板",您可以编写非常长且复杂的代码。但我认为这不会对你的情况有所帮助。