在multidimensional array中使用不同长度的Ubound?

所以我在Excels VBA中有一个multidimensional array。 我正在阅读Excel中的多个分号分隔线的TXT文件。 每一行都被读取,并分割成一个数组,并添加到multidimensional array中。 Codez:

Dim filenum As Integer 'number of next "free file" Dim splitCols As Variant Dim counter As Long Dim brCodes() As Variant Dim textline As String Dim lines As Variant Dim numrows As Long Dim numcols As Long numcols = getNumColumns(ActiveSheet.Name) numrows = getNumRows(ActiveSheet.Name) counter = 0 filenum = FreeFile() 'find next free filenum Open FileName For Input As #filenum 'open file for reading 'codes are put into an array While Not EOF(filenum) 'process while file has more lines. counter = counter + 1 Line Input #filenum, textline 'grab current line into textline splitCols = Split(textline, ";") ReDim Preserve brCodes(1 To counter) brCodes(counter) = splitCols Wend Close #filenum 'close file\ 

现在我想要循环访问brCodes每个数组。 我通常使用一个forloop像 –

 for i = lbound(brCodes,2) to ubound(brCodes,2) 'process stuff next 

但brCodes中的数组长度不同。 文本文件中的行具有不同数量的分号。 它看起来像这样:

 str1;str2;str3;str4;sdtr5 str1;str2;str3;str4;sdtr5;str6;str7 str1;str2;str3;str4 

所以我将不得不添加一个中间步骤,将每个数组拉出到一个临时variables,并像这样处理? 还是有没有人有办法让一个特定的“行”ubound而不是先拔出来?

添加

我也试过:

 For i = LBound(brCodes, 2) To UBound(brCodes, 2) For j = LBound(brCodes(i)) To UBound(brCodes(i)) MsgBox ("") Next Next 

但是我得到了同样的下标超出范围的错误

UNTESTED

这不是一个multidimensional array。 它是一个Variants的一维数组,每个变体都包含任意长度的数组。 我认为你的第二次尝试是接近的,但它应该是这样的:

 For i = LBound(brCodes) To UBound(brCodes) For j = LBound(brCodes(i)) To UBound(brCodes(i)) MsgBox ("") Next Next