说我有一个二维数组。我想对当前位置(包括当前位置)左侧的行中的值求和。
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]
答案 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
This thread可能是有用的阅读内容。