将值范围插入多维数组

时间:2019-06-12 13:35:32

标签: excel vba

我正在尝试创建一个多维数组,其中第一列包含标识符,相邻列包含与该标识符相关的数据。因此,例如,我想创建一个具有以下结构的数组:

Banana  10  20  30  40
Coconut 5   10  2   4
Apple   3   4   5   6

数组的构建始于相关标识符的定义。因此,例如,在上面是香蕉,椰子和苹果。我用来构造数组的数据将具有如下所示的布局:

Banana  10  20  30  40
Parrot  5   3   1   4
Apple   3   4   5   6
Car     10  20  30  40
Donkey  4   12  3   0
Coconut 5   10  2   4

因此,我首先定义了香蕉,椰子和苹果标识符,然后希望根据数据中标识符名称的循环自动填充数组(我已将其定义为“输入”)。但是,我不确定每次标识符匹配时如何在数组中正确插入相邻数据。如果有人可以根据以下代码解释如何做到这一点,我将不胜感激。

identifierArray = Array("Banana", "Coconut", "Apple")
NumElements = UBound(identifierArray) - LBound(identifierArray) + 1

For Each Element In identifierArray
    ReDim Preserve arr(0 To NumElements, x)
    arr(i, 0) = identifierArray(i)
    i = i + 1
Next Element

For Each cell In ws.Range("INPUT")
    For Each Element In identifierArray
        If cell.Value = Element Then

         [Need help here]

        End If
    Next Element
Next cell

我不需要创建VLOOKUP或INDEX / MATCH解决方案的帮助,因为与上述内容无关。

1 个答案:

答案 0 :(得分:2)

您可以像这样在工作表中的某个区域填充数组:

Option Explicit
Sub Test()

    Dim arr

    With ThisWorkbook.Sheets("Data")
        arr = .Range("A1:E6")
    End With

End Sub

因此范围如下:

Data

变成这样的数组:

Array

因此您根本不需要循环,这意味着执行速度更快且代码更便宜。