我希望使用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栏)将整个小组分成一个大的小组
答案 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