循环遍历vba excel中的多维数组

时间:2014-10-14 03:14:16

标签: excel vba

我试图循环一个二维数组。 1d将始终为25,2d将具有不同的金额。通常,第一维的成员将是空的,这是isarray(已发送)代码的点。我在j = 1到ubound(发送,2)的部分得到了一个超出范围的下标

For i = 1 To 25
    If IsArray(sent(i)) Then
        For j = 1 To UBound(sent, 2)
            If concat_multi = "" Then
            concat_multi = sent(i, j)
            Else
            concat_multi = concat_multi & " & " & sent(i, j)
            End If
        Next
        ActiveCell.Offset(1) = concat_multi
        concat_multi = ""
    End If
Next

这是截图

enter image description here

1 个答案:

答案 0 :(得分:5)

查看对象浏览器。您需要引用它,因为Sent(i)是一个1d数组。所以你有一个1d数组,其中每个元素是另一个1d数组。

而不是sent(i, j)执行sent(i)(j)并启动循环:

for j = 1 To ubound(sent(i))

从技术上讲,你应该这样做,以防你得到基数不是1的数组(基数0是常见的,默认情况下除非它是一个范围数组)。

For j = lbound(sent (i)) to ubound(sent(i))