我已经做了一堆搜索,无法找到/想出如何自动分组的材料清单,我有。它是近70K行的数据,每月更新一次,没有分组。如果没有分组,就很难导航。它确实在A列中列出了缩进级别(1-12),这是我用来将层次结构与顶部的汇总行(参见示例) BOM分组组合在一起的。Excel只能进行八个级别的分组,但是大部分的部件分解都在4-10级。“自动提纲”不起作用。我试着用手动的方式录了一个宏,但没走多远。我对VBA和宏非常陌生,更不用说编写代码了,我真的不知道要搜索什么或者从哪里开始,所以任何帮助都将是非常感谢的。提前谢谢你。
发布于 2022-04-07 00:16:52
很抱歉@PeterT和@dbmitch没有早点回复。幸运的是,我们得到的文件已经创建了宏,但没有运行。我想分享代码,以防其他人想做同样的事情。
Sub User_Create_Collapsible_Tree()
' UseSheet = "Output"
' Sheets(UseSheet).Select
'
' ' Create groups for collapsing tree
' With Sheets(UseSheet)
With Sheets(ActiveSheet.Name)
Range("A3").Select
' Can only group max of 8 levels, so start grouping everything above 8
For counter = 11 To 3 Step -1
Range("A3").Select
TOP_ROW = 0
BOTTOM_ROW = 0
R = 3
Do Until .Cells(R, 1) = ""
If .Cells(R, 1) > counter Then
If TOP_ROW = 0 Then
' TOP_ROW = .Cells(R, 1)
TOP_ROW = R
End If
' BOTTOM_ROW = .Cells(R, 1)
BOTTOM_ROW = R
Else
If TOP_ROW <> 0 Then
'HOLD_CELL = ActiveCell.Address
' Range(Rows(TOP_ROW), Rows(BOTTOM_ROW)).Select
' Selection.Columns.Group
TOP_TO_BOTTOM = TOP_ROW & ":" & BOTTOM_ROW
Rows(TOP_TO_BOTTOM).Group
TOP_ROW = 0
'Range(HOLD_CELL).Select
End If
End If
R = R + 1
Loop
If TOP_ROW <> 0 Then
' Range(Rows(TOP_ROW), Rows(BOTTOM_ROW)).Select
' Selection.Columns.Group
TOP_TO_BOTTOM = TOP_ROW & ":" & BOTTOM_ROW
Rows(TOP_TO_BOTTOM).Group
End If
Next
End With
Range("A3").Select
End Sub这将返回类似于这个分组的结果。唯一需要更改的是级别范围。因为excel只能做八个级别,所以我把它从"8到1“改为"11到3”,它工作得很漂亮。
https://stackoverflow.com/questions/71680633
复制相似问题