使用 VBA 折叠一些组(不是全部)
Collapse Some Groups (Not All) Using VBA
我希望有人可以帮助我来到这里...
我有一个很大的列表,我正在使用分组来组织它:
如您所见,我有一个主要组行,其中包含许多产品。然后,一些产品有配件,然后分组在该部分下。
我想要的是仅折叠展示产品的所有配件组。下面的代码将扩展未扩展的组,我不希望这样。
shtOTP.Outline.ShowLevels RowLevels:=4
shtOTP.Outline.ShowLevels RowLevels:=3
shtOTP.Outline.ShowLevels RowLevels:=2
ActiveWindow.ScrollRow = shtOTP.Range("A3").row 'Go to top of sheet
我已经尝试查看 .Outline.Parent
.Outline.SummaryRow
函数,但据我所知,它们没有识别出该组的 "parent"。
我可以像下面这样循环:
For i = 3 To getLastRow
Dim nextRow As Integer
nextRow = shtOTP.Rows(i+1).row
If nextRow = ParentRow And i.EntireRow.Hidden = False Then
'Collapse the group below the product
End If
Next
但是……
如何 确定下一行是否是父行?
如何我只折叠那个组?
我想出了一个简短的宏来执行此操作:
Application.ScreenUpdating = False
Dim row As Range
For i = 3 To getLastRow
Set row = shtOTP.Range("A" & i)
If row.EntireRow.Hidden = True Then
'Do nothing
ElseIf row.Value = "SM" Then 'Minor Sub-model row, needs to be collapse
If shtOTP.Rows(i).EntireRow.ShowDetail = True Then
shtOTP.Rows(i).EntireRow.ShowDetail = False
End If
End If
Next
Application.ScreenUpdating = True
我将 "SM" 放在附件行的 A 单元格中,以便更好地识别它们。
我希望有人可以帮助我来到这里...
我有一个很大的列表,我正在使用分组来组织它:
如您所见,我有一个主要组行,其中包含许多产品。然后,一些产品有配件,然后分组在该部分下。
我想要的是仅折叠展示产品的所有配件组。下面的代码将扩展未扩展的组,我不希望这样。
shtOTP.Outline.ShowLevels RowLevels:=4
shtOTP.Outline.ShowLevels RowLevels:=3
shtOTP.Outline.ShowLevels RowLevels:=2
ActiveWindow.ScrollRow = shtOTP.Range("A3").row 'Go to top of sheet
我已经尝试查看 .Outline.Parent
.Outline.SummaryRow
函数,但据我所知,它们没有识别出该组的 "parent"。
我可以像下面这样循环:
For i = 3 To getLastRow
Dim nextRow As Integer
nextRow = shtOTP.Rows(i+1).row
If nextRow = ParentRow And i.EntireRow.Hidden = False Then
'Collapse the group below the product
End If
Next
但是……
如何 确定下一行是否是父行?
如何我只折叠那个组?
我想出了一个简短的宏来执行此操作:
Application.ScreenUpdating = False
Dim row As Range
For i = 3 To getLastRow
Set row = shtOTP.Range("A" & i)
If row.EntireRow.Hidden = True Then
'Do nothing
ElseIf row.Value = "SM" Then 'Minor Sub-model row, needs to be collapse
If shtOTP.Rows(i).EntireRow.ShowDetail = True Then
shtOTP.Rows(i).EntireRow.ShowDetail = False
End If
End If
Next
Application.ScreenUpdating = True
我将 "SM" 放在附件行的 A 单元格中,以便更好地识别它们。