|
非常感谢楼主,通过这帖解决了我的大问题。
但在使用中发现有如下问题:
举例说明:
如果序号列是这样分布:
1.1.1
1.2
1.3
1.3.1
那么1.3这一行,会被归到1.3.1这一级,出现错误。
经排查,可将1L附件2中 sub aa()第12行,
- If UBound(sfji) > ji Then
复制代码 修改为
- If UBound(sfji) >= ji Then
复制代码 最终就是:
- Sub aa()
- Dim brr(7)
- r = Range("a" & Rows.Count).End(xlUp).Row
- arr = Range("a1:a" & r)
- ji = 0
- brr(0) = 2 '起始行
- Range(Cells(brr(ji) + 1, 1), Cells(UBound(arr, 1), 1)).ClearOutline
- For i = brr(0) To UBound(arr, 1)
- sfji = Split(arr(i, 1), ".")
- If UBound(sfji) >= ji Then
- ji = UBound(sfji)
- jiw = 0
- brr(ji) = i
- ElseIf UBound(sfji) < 0 Then
- jiw = 1
- ElseIf UBound(sfji) < ji Or jiw = 1 Then
- If jiw = 1 Then
- Range(Cells(brr(ji) + 1, 1), Cells(i - 1, 1)).Rows.Group
- brr(ji) = i
- jiw = 0
- End If
- Do While UBound(sfji) < ji
- ji = ji - 1
- Range(Cells(brr(ji) + 1, 1), Cells(i - 1, 1)).Rows.Group
- brr(ji) = i
- Loop
- End If
- Next
- Do While ji > 0
- ji = ji - 1
- Range(Cells(brr(ji) + 1, 1), Cells(i - 1, 1)).Rows.Group
- Loop
- End Sub
复制代码 问题解决。再次感谢楼主。
|
评分
-
1
查看全部评分
-
|