Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba-重拨2d数组并尝试查找数组第二个数组的长度_Vba_Excel_Delimiter - Fatal编程技术网

vba-重拨2d数组并尝试查找数组第二个数组的长度

vba-重拨2d数组并尝试查找数组第二个数组的长度,vba,excel,delimiter,Vba,Excel,Delimiter,这里的想法是,我有一个表,a列希望它是数组的第一部分,B列是整数,希望它是数组第二部分的长度 这里的问题是,数组的第二部分的上界是否可能有不同的长度 这是我的代码,但似乎不起作用 Dim rowssheet2 As Variant rowssheet2 = ThisWorkbook.Worksheets("Sheet2").Range("b2").End(xlDown).Row - 1 Dim arr2() ReDim arr2(rowssheet2) For i = 0 To rows

这里的想法是,我有一个表,a列希望它是数组的第一部分,B列是整数,希望它是数组第二部分的长度

这里的问题是,数组的第二部分的上界是否可能有不同的长度

这是我的代码,但似乎不起作用

Dim rowssheet2 As Variant
rowssheet2 = ThisWorkbook.Worksheets("Sheet2").Range("b2").End(xlDown).Row - 1
Dim arr2()
 ReDim arr2(rowssheet2)

 For i = 0 To rowssheet2
  ReDim arr2(i, ThisWorkbook.Worksheets("Sheet2").Range("B" & 2 + i).Value)
Arr2(i, 0) = ThisWorkbook.Worksheets("Sheet2").Range("A" & 2 + i).Value

Next i

如果你能回答这个问题,如果这是可能的话,那么我将尝试遍历数组,但是Ubound(arr2,2)对于所有数组来说都不一样严格地说,VBA数组在第二维度上没有不同的边界,这取决于第一个数组的索引。这在我看来是相当明显的。(事实上,源代码谈到了VB6,但在VBA中没有区别。)

您在循环中所做的是为整个阵列重新指定两个维度。(见本手册第5.4.3.3节。)


但是,您尝试实现的概念是,可以在VBA中构建锯齿阵列,即阵列阵列。看看如何做。

不,不是你做的方式。阵列将始终为矩形,而不是“参差不齐的边缘”。