是否可以使用变量定义数组?

时间:2016-05-13 17:18:46

标签: vba excel-vba excel

我正在编写一个使用数组的代码,这些数组的维度取决于用户提供的值。该值取决于他/她正在使用的单元格数量,我使用此数字来执行for循环结构。 这是一个例子:

Sub Test()
    Dim Row As Integer
    Dim Myarray(1 To Row) As String

    For 1 To Row
        'Do whatever I need
    Next linha
End Sub

当我尝试此操作时,会出现错误。有没有办法使用它?我在google上寻找任何线索,我发现了动态阵列。但它似乎不适合我的问题。

谢谢!

2 个答案:

答案 0 :(得分:1)

将语法更改为(显然`LengthOfArray'应该包含数组大小的数字):

Sub Test()
    Dim Row As Integer
    Dim Myarray() As String

    n = LengthOfArray

    Redim MyArray(1 to LengthOfArray)

    For linha = 1 To n
        'Do whatever I need
    Next linha
End Sub

答案 1 :(得分:0)

我会使用集合而不是数组,你可能想看看做redim保留。 (https://msdn.microsoft.com/en-us/library/w8k3cys2.aspx

sub Test(row as range)
Dim my myCollection as new collection


myCollection.add row
For each Item in myCollection
    'Do some stuff here...
Next 'Item
end Sub