锯齿状阵列到2D阵列

时间:2016-03-22 19:38:31

标签: arrays vba multidimensional-array range jagged-arrays

我在一个范围内创建了一个锯齿状的非连续列数组(不包括任何空白或零填充列)。现在我想加入锯齿状数组中的不同列,并将其转换为我们得到的2维数组,如果我们将范围传递给变体。我无法使用INDEX或TRANSPOSE来拉取列名称来填充100%StackedBarChart的XValues,Values和Series.Name,因此需要。

以下是截图:

JAGGED ARRAY:

enter image description here

RANGE ARRAY:

enter image description here

正如您在锯齿状数组中看到的那样,每个列单元格显示在最外面,行单元格1到5显示在最里面,而在范围2d数组中,它是反之亦然。列和行的大小相同,即5行和2列。

如何将锯齿状数组转换回正常范围类型的矩形2D数组?有人能帮我快点吗? 感谢。

1 个答案:

答案 0 :(得分:2)

在Florent的想法中,我实际上写了自己的Jagged2Rectconverter:

   Dim tarr
   ReDim tarr(1 To UBound(TempArr(1), 1), 1 To UBound(TempArr, 1))

   For c = LBound(TempArr, 1) To UBound(TempArr, 1)
       For r = LBound(TempArr(c), 1) To UBound(TempArr(c), 1)
           tarr(r, c) = TempArr(c)(r, 1)
       Next r
   Next c

现在tarr()给了我相同的Rect数组:

enter image description here

没有循环的任何更快的方法吗? :)