2012-10-12 134 views
3

关于如何运行简单的宏按钮,我们有一个微不足道的问题。此按钮的目的有两个:扩展行和折叠行。VBA使用相同的宏按钮展开/折叠行

上按下该VBA命令被启动的按钮:

Sub Macro7() 

Rows(7).ShowDetail = True 

End Sub 

此命令扩展了再次按下按钮(同时该行被展开)行7.

,此VBA启动:

Sub Macro7() 

Rows(7).ShowDetail = False 

End Sub 

这会折叠该行。

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

在此先感谢!

M

回答

4

不需要。只要调整您的宏来检查你行的当前状态(折叠或展开),并采取相应的行动:

Sub ExpandOrCollapse() 

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

End Sub 
+0

非常感谢这 – user1717622

+0

没问题。当你觉得你已经得到一个答案时,不要忘记接受一个答案:http://stackoverflow.com/faq#howtoask – nutsch

0

试试这个

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

If rowExpanded = True Then 
    Rows(7).ShowDetail = False 
Else 
    Rows(7).ShowDetail = True 
End If 
6
Sub Macro7() 
    With Rows(7) 
     .ShowDetail = Not .ShowDetail 
    End With 
End Sub 
2

我上面的答案尝试和没有工作为了我。下面是可用的代码:

Sub rowExpanded() 

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

End Sub 
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