Vba 带宏的矩形阵列

Vba 带宏的矩形阵列,vba,Vba,我尝试在VBA代码中创建一个包含2行5列的数组。可能吗?我是这样写的 副罗宾() 端接头 但是它有两行两列。怎么办?默认情况下,UBound将返回数组第一维度的最高索引。您需要将可选参数设置为2,以获取第二维度的最后一个索引 For b = 0 To UBound(myArray(), 2) 默认情况下,UBound将返回数组第一维度的最高索引。您需要将可选参数设置为2,以获取第二维度的最后一个索引 For b = 0 To UBound(myArray(), 2) 或 或 谢谢大家抽出

我尝试在VBA代码中创建一个包含2行5列的数组。可能吗?我是这样写的

副罗宾()

端接头


但是它有两行两列。怎么办?

默认情况下,UBound将返回数组第一维度的最高索引。您需要将可选参数设置为2,以获取第二维度的最后一个索引

 For b = 0 To UBound(myArray(), 2)

默认情况下,UBound将返回数组第一维度的最高索引。您需要将可选参数设置为2,以获取第二维度的最后一个索引

 For b = 0 To UBound(myArray(), 2)


谢谢大家抽出时间。我已经找到了我想要的东西。我重写了如下代码:

副罗宾()

端接头


这对我来说非常有效。再次感谢

谢谢大家抽出时间。我已经找到了我想要的东西。我重写了如下代码:

副罗宾()

端接头


这对我来说非常有效。再次感谢

vba 2d的工作原理与其他语言不同。请注意,您应该这样获得数组长度:vba 2d与其他语言的工作方式不完全相同。请注意,您应该通过以下方式获得阵列长度:
Sub batman()
    [Sheet1!A1:E2] = [{1,2,3,4,5;6,7,8,9,10}]
End Sub
Sub robin()
    Dim myArray(1 To 2, 1 To 5) As Double, c As Long

    For c = 1 To 5
        myArray(1, c) = c
        myArray(2, c) = c + 5
    Next

    [Sheet1!A1:E2] = myArray
End Sub
Cells.Select                    'this codes clears previous entries
Range("T17").Activate
Selection.ClearContents
Range("E4").Select

Dim myArray(1, 5) As Double
Dim a As Double, b As Double
Dim i As Integer
Dim j As Integer
Dim c As Double
c = 1

For a = LBound(myArray, 1) To UBound(myArray, 1)
    For b = LBound(myArray, 2) To UBound(myArray, 2)
        myArray(a, b) = c
        ThisWorkbook.Sheets("Sheet1").Cells(a + 1, b + 1).Value = myArray(a, b)

        c = c + 1
    Next b


Next a