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

use*_*178 2 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
Run Code Online (Sandbox Code Playgroud)

这是一个截图

在此输入图像描述

Dav*_*ens 5

看看你的对象浏览器.您需要将其称为Sent(i)1d数组.所以你有一个1d数组,其中每个元素是另一个1d数组.

而不是sent(i, j)这样做sent(i)(j)并启动循环:

for j = 1 To ubound(sent(i))
Run Code Online (Sandbox Code Playgroud)

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

For j = lbound(sent (i)) to ubound(sent(i))
Run Code Online (Sandbox Code Playgroud)