Arrays 锯齿阵列到二维阵列
我从一个范围(不包括任何空白或零填充列)创建了一个非连续列的锯齿状数组。现在我想连接锯齿数组中的不同列,并将其转换为一个二维数组,如果我们将一个范围传递给一个变量,就会得到这个数组。我无法使用索引或转置来提取列名以填充XValues、Values和Series。100%StackedBarChart的名称,因此需要 以下是截图: 锯齿阵列: 范围数组: 正如您在锯齿状数组中看到的,每个列单元格显示在最外面,行单元格1到5显示在最里面,而在范围2d数组中,它是反之亦然。列和行的大小相同,即5行和2列 如何将锯齿阵列转换回普通范围类型的矩形2D阵列?谁能快点帮我吗?Arrays 锯齿阵列到二维阵列,arrays,vba,multidimensional-array,range,jagged-arrays,Arrays,Vba,Multidimensional Array,Range,Jagged Arrays,我从一个范围(不包括任何空白或零填充列)创建了一个非连续列的锯齿状数组。现在我想连接锯齿数组中的不同列,并将其转换为一个二维数组,如果我们将一个范围传递给一个变量,就会得到这个数组。我无法使用索引或转置来提取列名以填充XValues、Values和Series。100%StackedBarChart的名称,因此需要 以下是截图: 锯齿阵列: 范围数组: 正如您在锯齿状数组中看到的,每个列单元格显示在最外面,行单元格1到5显示在最里面,而在范围2d数组中,它是反之亦然。列和行的大小相同,即5行
谢谢。关于Florent的想法,我实际上写了我自己的Jagged2转换器:
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数组:
有没有更快捷的方法来避免循环?:) 根据弗洛伦特的想法,我实际上写了我自己的Jagged2转换器:
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数组:
有没有更快捷的方法来避免循环?:) 我知道的唯一方法是创建一个二维数组并用for循环填充它。如何设置这样的二维数组?你能给我举个例子吗?看看这里:我知道的唯一方法是创建一个二维数组并用for循环填充它。我如何设置这样一个二维数组?你能给我举个例子吗?看看这里:你找不到更快的方法,因为这是唯一的方法。但是,您可以通过将tarr()声明为Variant,c声明为Long,r声明为Long,并在第二个中使用变量作为for的边界来改进此方法。您不会找到更快的方法,因为这是唯一的方法。但是,您可以通过将tarr()声明为Variant、c声明为Long、r声明为Long,并在第二个声明中使用变量作为边界来改进这一点。