在VBA中展开/折叠分组的单元格宏

问题描述

我的代码有很多问题。

我已经对行进行了分组(153:227),并且希望有一个切换开关来展开和折叠行。

但是,如果我执行EntireRow.Hidden函数,该功能将取消隐藏组内所有隐藏的单元格(我希望保持隐藏状态)。

.ShowDetail函数似乎工作了一半时间,并且不会切换,因为如果您已经在显示详细信息时尝试“显示详细信息”,则它将返回一个错误(如果有意义)。因此,我只能展开或折叠,但不能同时使用切换开关。

请帮助!

解决方法

插入切换按钮并为其分配此代码以隐藏/显示行(确保VBA编辑器中的“对象框”包含切换的名称,并且“过程框”为“单击”):

Private Sub My_Toggle_Button()

If Range("A153","A227").EntireRow.Hidden = True Then
    Me.MyToggleButton.Caption = "Hide rows"
    Me.MyToggleButton.Value = False
    Range("A153","A227").EntireRow.Hidden = False
Else
    Me.MyToggleButton.Caption = "Show rows"
    Me.MyToggleButton.Value = True
    Range("A153","A227").EntireRow.Hidden = True
End If

End Sub