动态添加阵列以创建2D阵列

时间:2018-02-19 06:05:46

标签: arrays vba excel-vba multidimensional-array excel

我已经查看了关于这个主题的每一篇文章,但我似乎无法得到任何工作。

我希望能够自己使用2D数组,但我认为最好的办法就是制作一个巨大的一维数组。

Sub GatherData()
Dim width As Integer: width = 22

Dim data() As Variant
ReDim roadway(width) As Variant

Dim str As Variant
Dim arrayWidth As Integer

With ThisWorkbook.Worksheets("List of Roads").Range("A1")

    For r = 0 To 400 '400 is an arbitrary number
        If Not IsEmpty(.Offset(r, 0).value) Then
            If IsStreet(UCase(.Offset(r, 0).value), UCase(.Offset(r, 1).value)) Then
                For c = 0 To width - 1
                    roadway(c) = .Offset(r, c).value
                Next c
            End If

            'add roadway array to the end of data()

        End If
    Next r
End With

End Sub

如果我按照自己的方式行进,这个2D数组将有一个未知数量的行,每行包含22列。我无法理解如何动态添加数组。

1 个答案:

答案 0 :(得分:1)

Dim data
data = ThisWorkbook.Worksheets("List of Roads").Range("A1").Resize(400, 22).Value

会给你一个2D数组(1到400,1到22)