/ / Excel vba - kombinuje viac polí do jedného - Excel, Vba, Excel

Excel vba - kombinovať viacero polí do jedného - excel, vba, excel-vba

Ak mám 5 polí, ktoré majú rovnakú dimenziu, môžem ich kombinovať do jedného poľa s 5 čiastkovými poľami.

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

Môžem to urobiť:

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

Alebo to musím urobiť jeden po druhom?

odpovede:

2 pre odpoveď č. 1

Kombinovanie polí do poľa sa nazýva zvyčajne zubaté pole (info pre C # zubaté polia a Ako nastavím „zubaté pole“ vo VBA? a Môžete priamo deklarovať zubaté polia vo vynikajúcej VBA?), ak počet prvkov nie je rovnaký. V nižšie uvedenom prípade va má jeden prvok viac ako vb a 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

Jednoducho vyhlasujete vx a zadáte va, vb, vc na to, aké sú. Potom získate prístup k takýmto prvkom -> vx(1)(0)