使用VBA对单元格进行分组

时间:2017-09-01 06:55:29

标签: excel vba excel-vba

我希望使用VBA在excel中进行一些分组

我的“条件”列是“A”,它通常是一个数字列表,显然是多余的,应该分组以便用户更好地理解Excel工作表

我将列命名为“A”“Vertrag__Nr。”

我的代码

Sub Test()
Dim i As Integer, LastRow As Integer

LastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To LastRow

    If Not Left(Cells(i, 1), 2) = "Vertrag__Nr." Then
        Cells(i, 2).EntireRow.Group
    End If

Next i
End Sub

我的问题是我的代码而不是按条目“Vertrag _Nr”进行分组。 (A栏)将整个小组分成一个大的小组

enter image description here

1 个答案:

答案 0 :(得分:1)

由于分组用于摘要,因此组之间必须有一个汇总的地方,它们不能连续,请尝试以下代码:

Sub Test()
Dim i As Integer, j As Integer, LastRow As Integer
Dim currVal As Variant
    With ActiveSheet
        LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        i = 2

        While i <= LastRow
            currVal = .Cells(i, 1).Value
            j = 0
            Do
                j = j + 1
            Loop Until .Cells(i + j, 1).Value <> currVal
            If j > 1 Then
                .Rows(i + j).Insert
                .Cells(i + j, 1).Value = currVal
                Range(.Cells(i, 1), .Cells(i + j - 1, 1)).EntireRow.Group
            End If
            i = i + j
        Wend
    End With
End Sub