我正在尝试在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中存在我的测试(给出“范围类的分组方法失败”)

09-25 20:26