По l oop в каждом ряду союза - PullRequest
0 голосов
/ 29 мая 2020
Function Atotal(AB As Range, values As Range) As Double
    Atotal = 0  
    Items = Union(AB.Cells, values.Cells)

    For Each hrow In Items.Rows
       ' If AB cell.Value =="A" then
       ' Atotal = Atotal + values cell.Value
    Next hrow
End Function

Например:

AB  |   VAL
------------
A   |   5
A   |   2
B   |   5
A   |   3
B   |   1

Atotal должно быть 10 (= 5 + 2 + 3)

Как это получить? Как пройти l oop через каждую строку Union и получить значения из другого диапазона?

1 Ответ

1 голос
/ 29 мая 2020

В этом процессе нет необходимости использовать Union.

Function Atotal(AB As Range, values As Range) As Double
    Atotal = 0

    Dim i As Integer
    For i = 1 To values.Rows.Count
        If AB.Cells(i, 1) = "A" Then
            Atotal = Atotal + values.Cells(i, 1).Value
        End If
    Next i

End Function
...