用VBA对单元格进行分组
我想使用VBA在excel中进行一些分组 我的“标准”列是“A”,这是一个明显冗余的数字列表,应该分组,以便用户更好地理解excel工作表 我已将列“A”命名为“Vertrag\uu\Nr” 我的代码用VBA对单元格进行分组,vba,excel,Vba,Excel,我想使用VBA在excel中进行一些分组 我的“标准”列是“A”,这是一个明显冗余的数字列表,应该分组,以便用户更好地理解excel工作表 我已将列“A”命名为“Vertrag\uu\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)
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\u Nr.”(A列)分组,而是将整个列分组为一个大组
由于分组用于摘要,组之间必须有一个摘要位置,它们不能是连续的,请尝试以下代码:
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
子测试()
尺寸i为整数,j为整数,最后一行为整数
Dim currVal作为变体
使用ActiveSheet
LastRow=.Cells(Rows.Count,1).End(xlUp).Row
i=2
而我呢
.行(i+j).插入
.单元格(i+j,1).值=当前值
范围(.Cells(i,1),.Cells(i+j-1,1)).EntireRow.Group
如果结束
i=i+j
温德
以
端接头
据我所见,您的代码将成为一个大的组。你能提供你的工作表的快照吗?@zac我已经更新了我的问题,所以,在你提供的例子中,哪些行应该分组?@MichałTurczyn所有这些行都根据列a左(单元格(i,1),2)=“Vertrag_uuuunr”。
将始终是False
,因为是“Vertrag_uuunr”
有12个字符……太好了,非常感谢您的时间和努力!:)$