VBA使用相同的宏按钮展开/折叠行

时间:2012-10-12 16:55:27

标签: excel vba

关于如何运行简单的宏按钮,我们遇到了一个小问题。此按钮的用途是双重的:扩展行并折叠行。

1 按下按钮启动此VBA命令:

Sub Macro7()

Rows(7).ShowDetail = True

End Sub

此命令展开第7行。

2 再次按下按钮(当行展开时),启动此VBA:

Sub Macro7()

Rows(7).ShowDetail = False

End Sub

这会使行崩溃。

有没有办法将按钮链接到两个宏?

提前致谢!!!

中号

5 个答案:

答案 0 :(得分:7)

Sub Macro7()  
    With Rows(7)
        .ShowDetail = Not .ShowDetail
    End With
End Sub 

答案 1 :(得分:5)

没必要。只需调整宏以检查行的当前状态(折叠或展开)并采取相应措施:

Sub ExpandOrCollapse()

Rows(7).ShowDetail=IIF(Rows(7).ShowDetail,False,true)

End Sub

答案 2 :(得分:2)

我尝试了上面的答案,但它对我不起作用。以下是有效的代码:

Sub rowExpanded()

Rows("7:7").Select
Selection.EntireRow.Hidden = IIf(Selection.EntireRow.Hidden, False, True)

End Sub

答案 3 :(得分:0)

试试这个

Dim rowExpanded As Boolean
rowExpanded = Rows(7).ShowDetail

If rowExpanded = True Then
    Rows(7).ShowDetail = False
Else
    Rows(7).ShowDetail = True
End If

答案 4 :(得分:0)

尝试使用命令按钮(ActiveX控件)。使用按钮标题来标识切换状态。

Private Sub CommandButton1_Click()

    If CommandButton1.Caption = "-" Then
        ActiveSheet.Outline.ShowLevels Rowlevels:=1, ColumnLevels:=1
        JobDescriptionToggleButton.Caption = "+"
    Else
        ActiveSheet.Outline.ShowLevels Rowlevels:=8, ColumnLevels:=8
        JobDescriptionToggleButton.Caption = "-"
    End If

End Sub