Группировка строк по значению формулы - PullRequest
0 голосов
/ 03 февраля 2019

Очень похож на этот вопрос -> Группировать строки по значению

Единственное отличие состоит в том, что значения, которые я группирую, являются формулами.См. Ниже пример данных (кажется, не может правильно встраивать изображения)

Пример данных

enter image description here

Желаемый вывод

enter image description here

Код ниже изменен ниже по сравнению с ответом, связанным с выше.

Sub demo()
    Dim r As Range
    Dim v As Variant
    Dim i As Long, j As Long

    With ActiveSheet
        On Error Resume Next
        ' expand all groups on sheet
        .Outline.ShowLevels RowLevels:=8
        ' remove any existing groups
        .Rows.Ungroup
        On Error GoTo 0
        Set r = .Range("D6", .Cells(.Rows.Count, 2).End(xlUp))
    End With

    With r
        'identify common groups in column D
        j = 1
        v = .Cells(j, 1).Formula
        For i = 2 To .Rows.Count
            If v <> .Cells(i, 1) Then
                ' Colum D changed, create group
                v = .Cells(i, 1)
                If i > j + 1 Then
                    .Cells(j + 1, 1).Resize(i - j - 1, 1).Rows.Group
                End If
                j = i
                v = .Cells(j, 1).Value
            End If
        Next
        ' create last group
        If i > j + 1 Then
            .Cells(j + 1, 1).Resize(i - j - 1, 1).Rows.Group
        End If
        ' collapse all groups
        .Parent.Outline.ShowLevels RowLevels:=1
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...