通过Excel VBA根据父子关系进行分组

时间:2019-03-05 10:37:10

标签: excel vba

假设我的项目有n个项目,并且每个项目由一位家长分配给他们。我想根据亲子关系将其分组。 In the 1st screenshoot the row number 769 has child from 770 to 896。所以我想要我的结果作为屏幕快照2,该组在769 Sample result require下从770到896排行

1 个答案:

答案 0 :(得分:0)

将此代码添加到新模块中...

Public Sub PerformOutlineOnSelectedRows()
    Dim i As Long, lngLevel As Long

    Selection.Rows.ClearOutline

    For i = 1 To Selection.Rows.Count
        lngLevel = UBound(Split(Selection.Cells(i, 1), ".")) + 1

        If lngLevel > 8 Then lngLevel = 8

        Selection.Rows(i).EntireRow.OutlineLevel = lngLevel
    Next
End Sub

...,然后选择要分组和概述的行,然后从功能区中的 Developer 标签运行宏。

enter image description here

enter image description here

请记住,分组和大纲功能仅会达到8个级别,因此低于此级别的任何内容将无法正确分组。

让我知道它是否有效,或者您需要更多信息。