Страницы: 1
RSS
Макрос для группировки строк по кол-ву точек в первой строке
 
Помогите пожалуйста с макросом для многоуровневой группировки строк на основании нумерации в первой колонке.

№№ п/п
1.
1.1.
1.1.1.
1.1.2.
1.1.3.
1.1.3.1.
1.1.4.

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

    ActiveSheet.Cells.ClearOutline
    ActiveSheet.Outline.SummaryRow = xlAbove
    
    Dim n1 As Long
    Dim n2 As Long
    Dim y1 As Long
    Dim y2 As Long
    For y1 = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        n1 = GetNdot(Cells(y1, 1))
        For y2 = y1 + 1 To Cells(Rows.Count, 1).End(xlUp).Row
            n2 = GetNdot(Cells(y2, 1))
            If n2 <= n1 Then Exit For
        Next
        y2 = y2 - 1
        Range(Cells(y1, 1), Cells(y2, 1)).EntireRow.Group
    Next
End Sub

Private Function GetNdot(txt As String) As Long
    GetNdot = Len(txt) - Len(Replace(txt, ".", ""))
End Function
 
МатросНаЗебре, спасибо огромнейшее, убежал тестить
Страницы: 1
Наверх