我正在尝试在Excel中编写一个宏,该宏将允许我根据第一列中的数字自动进行分组。这是代码。
Sub Makro1()
Dim maxRow As Integer
Dim row As Integer
Dim groupRow As Integer
Dim depth As Integer
Dim currentDepth As Integer
maxRow = Range("A65536").End(xlUp).row
For row = 1 To maxRow
depth = Cells(row, 1).Value
groupRow = row + 1
currentDepth = Cells(groupRow, 1).Value
If depth >= currentDepth Then
GoTo EndForLoop
End If
Do While currentDepth > depth And groupRow <= maxRow
groupRow = groupRow + 1
currentDepth = Cells(groupRow, 1).Value
Loop
Rows(row + 1 & ":" & groupRow - 1).Select
Selection.Rows.Group
EndForLoop:
Next row
End Sub
Excel文件中的第一列如下所示:
1
2
2
3
3
4
4
4
4
5
5
5
6
6
6
6
5
6
6
6
7
8
8
9
10
9
10
10
8
7
7
8
6
5
4
3
2
1
2
当宏达到分组的深度8时,出现错误号1004。看来Excel不允许我创建大于8的深度。是否有解决方法?我正在使用MS Excel 2003。
最佳答案
你真倒霉。
有一个8 level limit用于分组
也exists in xl07
在xl2010中存在我的测试(给出“范围类的分组方法失败”)