VBA: Суммируйте значения в строке слева от ссылки - PullRequest
0 голосов
/ 11 декабря 2018

Скажите, у меня есть двумерный массив.Я хочу суммировать значения в строке, которые находятся слева от текущей позиции (включая текущую позицию).

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 голосов
/ 11 декабря 2018

Я думаю, что это в основном то, что вы хотите.Я заполнил массив из листа, чтобы ускорить процесс, и поместил суммы во второй массив тех же размеров.

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

Эта тема может быть полезна для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...