How to add arrays?

前端 未结 2 1175
我在风中等你
我在风中等你 2021-01-13 20:36

I have the following problem in Excel while calculating through a loop: I need a variable (Destination Variable) that sequentially stores the results produced after each loo

相关标签:
2条回答
  • 2021-01-13 20:50

    Quite easy. I did this by recording as macro and tidying.

    Sub Macro1()            
        Range("origin").Copy
        Range("destination").PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    End Sub
    
    0 讨论(0)
  • 2021-01-13 20:54

    I like @S Meaden's answer, it is simple and I had not thought of that. And it certainly works for this purpose.

    You could also do simple iteration. IN the example below I add two different ranges and put them in a third range, but this could be re-worked for your needs pretty easily, or it is another option if you ever need to add ranges to another range:

    Sub AddArrays()
    Dim rng1 As Range
    Dim rng2 As Range
    Dim rngSum As Range
    
    Dim arr1 As Variant
    Dim arr2 As Variant
    Dim arrSum As Variant
    
    Set rng1 = Range("A1:C7")    '## Modify as needed
    Set rng2 = Range("F1:H7")    '## Modify as needed
    Set rngSum = Range("K1:M7")  '## Modify as needed
    
    'Raises an error, Type Mismatch
    'rngSum.Value = rng1.Value + rng2.Value
    
    arr1 = rng1.Value
    arr2 = rng2.Value
    arrSum = rngSum.Value
    
    Dim x As Integer, y As Integer
    
        For x = LBound(arr1, 1) To UBound(arr1, 1)
            For y = LBound(arr1, 2) To UBound(arr1, 2)
                arrSum(x, y) = arr1(x, y) + arr2(x, y)
            Next
        Next
    
        'Print result to sheet
        rngSum.Value = arrSum
    End Sub
    
    0 讨论(0)
提交回复
热议问题