Excel VBA – 将多个数组合并成一个

如果我有5个具有相同维度的数组,我可以将它们组合成一个具有5个子数组的数组。

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 

我可以这样做:

 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 

或者我必须一个一个的去做吗?

将数组合并到数组中通常命名为锯齿形数组( 对于C#参差不齐的数组,以及如何在VBA中设置“锯齿形数组”)以及是否可以直接在Excel VBA中声明锯齿形数组? ),如果元素数不是相同。 在下面的情况下, va有一个比vbvc多的元素:

 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 

您只需声明vx然后将vavbvc分配给它。 然后你访问像这样的元素 – > vx(1)(0)