vba如何从工作表中读取值并将它们存储在二维数组中

时间:2017-02-07 16:46:25

标签: excel vba

我基本上试图看看这是否是从工作表中转换值并将其存储在二维整数数组中的有效方法。

到目前为止,我想出的是这段代码:

'Generate a random integer from cell A1 to J10

Sub numrange()
    Dim r As Range
    Set r = Range("A1:J10")
    With r
      .Formula = "=randbetween(1,100)"
      .Copy
      .PasteSpecial (xlPasteValues)
   End With

'Turn A1 to J10 into a 2d array of integers

Dim arr As Variant
arr = Range("A1:J10")

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

非常感谢为使其成为有效数组而做出的任何澄清或编辑

1 个答案:

答案 0 :(得分:0)

如果您想要一个 integer数组的数组,那么您必须复制“逐个单元格”

Sub numrange()
    Dim r As Range
    Set r = Range("A1:J10")
    r.Formula = "=randbetween(1,100)"

    Dim arr As Variant
    Dim i As Integer, j As Integer

    arr = Range("A1:J10").Value
    ReDim arrint(LBound(arr, 1) To UBound(arr, 1), LBound(arr, 2) To UBound(arr, 2)) As Integer
    For i = LBound(arr, 1) To UBound(arr, 1)
        For j = LBound(arr, 2) To UBound(arr, 2)
            arrint(i, j) = arr(i, j)
        Next
    Next
End Sub