/ / Excel vba - kombiniere mehrere Arrays zu einem - excel, vba, excel-vba

Excel VBA - kombinieren Sie mehrere Arrays zu einem - Excel, VBA, Excel-VBA

Wenn ich 5 Arrays mit derselben Dimension habe, kann ich sie zu einem Array mit 5 Subarrays kombinieren.

va = ws1.Range("A2", ws1.Cells(Rows.Count, "A").End(xlUp)).Value
vb = ws1.Range("D2", ws1.Cells(Rows.Count, "D").End(xlUp)).Value
vc = ws1.Range("F2", ws1.Cells(Rows.Count, "F").End(xlUp)).Value
vd = ws1.Range("C2", ws1.Cells(Rows.Count, "C").End(xlUp)).Value
ve = ws1.Range("E2", ws1.Cells(Rows.Count, "E").End(xlUp)).Value

Darf ich das machen:

ReDim vx(1 To UBound(va, 1), 1 To 5, 1 To 1)
vx(1,1,1) = va
vx(1,2,1) = vb
vx(1,3,1) = vc
vx(1,4,1) = vd
vx(1,5,1) = ve

Oder muss ich es Element für Element tun?

Antworten:

2 für die Antwort № 1

Das Kombinieren von Arrays zu Arrays wird normalerweise als gezacktes Array bezeichnet (Informationen zu gezackten C # -Arrays und Wie richte ich ein "gezacktes Array" in VBA ein? und Können Sie gezackte Arrays in Excel VBA direkt deklarieren?), wenn die Anzahl der Elemente nicht gleich ist. Im folgenden Fall va hat ein Element mehr als vb und vc:

Option Explicit

Public Sub TestMe()

Dim va, vb, vc, vx

va = Array(1, 2, 3, 4)
vb = Array(11, 22, 33)
vc = Array(111, 222, 333)

ReDim vx(3)
vx(0) = va
vx(1) = vb
vx(2) = vc

Debug.Print vx(0)(1)
Debug.Print vx(0)(2)

Debug.Print vx(1)(1)
Debug.Print vx(2)(2)

End Sub

Sie erklären einfach vx und du weist zu va, vb, vc dazu, wie sie sind. Dann greifen Sie auf die Elemente wie folgt zu -> vx(1)(0)