2范围内的维数组

Sid*_*tha 4 excel vba excel-vba

我在单元格中的Excel工作表中有文本数据B6:H14.

有些行有2个单元格有内容,有些行有4个,有些行有7个.如何将这些复制到2维数组?我已经知道尺寸了,所以我很擅长尺寸没有被声明为动态代码.

我是否需要使用循环(我目前正计划使用)?

或者是更容易/更优雅的方式?

小智 41

假设您的电子表格看起来像这样

电子表格

有一种非常简单的方法可以将其粘贴在2D阵列中

Dim arr as Variant
arr = Range("B6:H14").Value
Run Code Online (Sandbox Code Playgroud)

将此数组打印回电子表格的最简单方法

Sub PrintVariantArr()

    Dim arr As Variant
    arr = Range("B6:H14")

    Range("B16").Resize(UBound(arr, 1), UBound(arr, 2)) = arr

End Sub
Run Code Online (Sandbox Code Playgroud)

或者您可以迭代/循环数组

Sub RangeToArray()

    Dim arr As Variant
    arr = Range("B6:H14").Value
    Dim r As Long, c As Long

    r = 16
    c = 2

    Dim i, j
    For i = LBound(arr, 1) To UBound(arr, 1)
        For j = LBound(arr, 2) To UBound(arr, 2)
            Cells(r, c) = arr(i, j)
            c = c + 1
        Next j
        c = 2
        r = r + 1
    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)

并且您的阵列打印回电子表格

结果