1

質問は次のとおりです。「あなたのプログラムが結果と呼ばれる大きな二次元配列に値を入力し、これらの値を Excel の範囲にダンプしたいとします。たとえば、結果が m x n の場合、プログラムはm 行 n 列の範囲に値をダンプします。1 つの方法は、ネストされた 2 つのループを使用して、データを一度に 1 要素ずつ適切なセルにダンプすることです。"

私がこれまでに持っているもの:

    Dim MyArray(m, n) As Long
    Dim X as Long
    Dim Y as Long
        For X = 1 To m
        For Y = 1 To n 
            MyArray(X, Y) = Cells(X, Y).Value
        Next Y
        Next X

私は本当にこれを理解するためにいくつかの助けが必要です

4

2 に答える 2

2

これにより、配列が m 行 n 列で埋められ、そのすべてが のセルから始まる範囲に転送されA1ますActiveSheet

Sub FillRangeFromArray()
Dim m As Long
Dim n As Long
Dim x As Long
Dim y As Long
Dim MyArray() As String

'set the row and column dimensions
m = 100
n = 5
'redimension the array now that you have m and n
ReDim MyArray(1 To m, 1 To n)
'whenever possible lbound and ubound (first to last element) 
'to loop through arrays, where
'MyArray,1 is the first (row) element and MyArray,2
'is the second (column) element
For x = LBound(MyArray, 1) To UBound(MyArray, 1)
    For y = LBound(MyArray, 2) To UBound(MyArray, 2)
        MyArray(x, y) = x & "-" & y
    Next y
Next x
'fill the range in one fell swoop
'Resize creates a range resized to
'm rows and n columns
ActiveSheet.Range("A1").Resize(m, n).Value = MyArray
End Sub
于 2013-10-15T00:48:44.553 に答える