Можно ли объединить три ряда одного цвета? - PullRequest
0 голосов
/ 28 мая 2019

Вот изображение для поддержки объяснения .

Значения столбца D выделяются одинаковым цветом, если записи в этом столбце идентичны.

В этом случае для каждой «группы» цветов I следует:

  • добавить все значения столбца E для данного цвета и ввести сумму в столбец J.

Как видно на рисунке, сумма в столбце J идеально подходит, если данный цвет встречается только в двух строках (идеально подходит для красного и зеленого цветов).Но как только цвет охватывает более двух строк, сумма отражает не сумму всех строк, а сумму только двух записей за раз.

Вот код, который я написал для этого вычисления:

Sub test()

    Dim LastRow As Long, I As Long, j As Long
    Dim arr As Variant
    Dim Total_Payments As Single
    Dim Total_CashBalance As Single

    With ThisWorkbook.Worksheets("Master")

        'Find Last row of column L
        LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row

        'Set array starting from row 2 to LastRow of column L
        arr = .Range("D2:D" & LastRow)

        For I = LBound(arr) To UBound(arr)

            If .Range("D" & I).Interior.Pattern <> xlNone Then

                For j = LBound(arr) To UBound(arr)

                    If (.Range("D" & j).Interior.Pattern <> xlNone) And (I <> j) Then

                        If .Range("D" & I).Interior.Color = .Range("D" & j).Interior.Color Then


                                .Range("N" & I).Value = "Cell L" & I & " has the same background color with cell/s L" & j

                                Total_Payments = .Range("E" & I).Value + .Range("E" & j).Value
                                Range("J" & I).Value = Total_Payments

                        End If

                    End If

                Next j

            End If

        Next I

    End With

End Sub

Я был бы очень рад, если бы вы могли сказать мне, как сделать эту работу для числа ячеек в одной группе больше, чем2 :) Спасибо !!

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете использовать формулу SUMIF, вставленную при необходимости через VBA.

Формула в C1 скопирована

=SUMIF($A$1:A11,A1,$B$1:$B$11)

enter image description here

...