VBA:将参考左侧的值相加

时间:2018-12-11 10:10:46

标签: excel vba excel-vba

说我有一个二维数组。我想对当前位置(包括当前位置)左侧的行中的值求和。

Dim Arr As Variant
ReDim Arr(4,5)
Dim i As Integer
Dim j As integer
NumRows = UBound(V, 1)
NumCols = UBound(V, 2)

For j = 0 to NumCols
    For i = 0 to Num Rows 
        Arr(i,j) = ......
    Next i
Next j 

是否有一个SUM(X:Y)的等效项,可以在其中引用数组中的元素?

例如,我认为这将汇总第三行:

With Application.WorksheetFunction
   dSum = .Sum(.Index(Arr, 3, 0))
End With

但是我需要在左侧将位置(包括当前位置)相加。

如果我的数组是2x4:

[1,1,2,3]
[1,1,3,5]

应该是:

[1,2,4,7]
[1,2,5,10] 

1 个答案:

答案 0 :(得分:1)

我认为这基本上可以满足您的需求。我从工作表中填充了一个数组,以使事情更快,并将总和放入具有相同尺寸的第二个数组中。

Sub x()

Dim v, i As Long, j As Long, v2()

v = Range("A1:D2").Value
ReDim v2(1 To UBound(v, 1), 1 To UBound(v, 2))

For i = LBound(v, 1) To UBound(v, 1)
    For j = LBound(v, 2) To UBound(v, 2)
        v2(i, j) = Application.Sum(Application.Index(v, i, Evaluate("ROW(1:" & j & ")")))
    Next j
Next i

End Sub

enter image description here

This thread可能是有用的阅读内容。