隐藏/取消隐藏特定组

我想创build一个button来隐藏和取消隐藏与VBA的特定组。 我有的代码将隐藏或取消隐藏指定级别的所有组:

Sub Macro1() ActiveSheet.Outline.ShowLevels RowLevels:=2 End Sub 

比方说,我只是想取消隐藏组2中的第二组,我该怎么做?

说“分组级别2中的第二组”是7-10行。 然后这个代码将取消隐藏该组:

 ActiveSheet.Rows(10).ShowDetail = True 

但是,最好把它转换成一个可以隐藏/取消隐藏组的切换function。 下面是一个通用切换函数(ToggleOutlineGroup),它允许您通过传递轮廓所在的工作表和行来隐藏/取消隐藏组。 行可以是组中的任何行,只要它不是另一个子组的一部分。 为了简单起见,我使用了该组的最后一行。 sub foo是如何调用函数的一个例子。

 Sub foo() ToggleOutlineGroup Sheet1, 10 End Sub Sub ToggleOutlineGroup(sht As Worksheet, row As Long) sht.Rows(row).ShowDetail = Not (sht.Rows(row).ShowDetail) End Sub