vba代码(显示所有行,隐藏空行)如何把这两个按钮合并成一个?可以循环使用?

Sub 隐藏行()

Application.ScreenUpdating = False
For i = 6 To 200

If Application.Sum(Range("o" & i & ":p" & i)) = 0 And Application.Range("r" & i) = 0 And Application.Range("t" & i) = 0 And Application.Sum(Range("aa" & i & ":ab" & i)) = 0 Then Rows(i & ":" & i).Hidden = True

Next
Application.ScreenUpdating = True
End Sub

Sub 显示行()
Cells.Select
Selection.EntireRow.Hidden = False
Range("A3:B4").Select
End Sub

可以使用Not实现开关切换效果。

Sub 隐藏行()
 Application.ScreenUpdating = False
    For i = 6 To 200
        If Application.Sum(Range("o" & i & ":p" & i)) = 0 And Application.Range("r" & i) = 0 And Application.Range("t" & i) = 0 And Application.Sum(Range("aa" & i & ":ab" & i)) = 0 Then Rows(i & ":" & i).Hidden = _
         Not Rows(i & ":" & i).Hidden
    Next
 Application.ScreenUpdating = True
End Sub

追问

功能是实现了,我想问下 如何让按钮的名称也跟着变呢?当这些行是隐藏的时候,按钮显示的是展开所有行,点一下,所有行都展开了,按钮的名字也变成隐藏空行

追答

设计模式中右键按钮--显示代码,使用以下代码。

如有帮助,请采纳!

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    iStr = CommandButton1.Caption
        For i = 6 To 200
            If Application.Sum(Range("o" & i & ":p" & i)) = 0 And Application.Range("r" & i) = 0 And Application.Range("t" & i) = 0 And Application.Sum(Range("aa" & i & ":ab" & i)) = 0 Then Rows(i & ":" & i).Hidden = _
             Not Rows(i & ":" & i).Hidden
            If iStr = "展开所有行" Then
                iStr = "隐藏空行"
            Else
                iStr = "展开所有行"
            End If
            CommandButton1.Caption = iStr
        Next
    Application.ScreenUpdating = True
End Sub

追问

这个设计模式,右键按钮没有显示代码呀。只有剪切,复制,粘贴,编辑文字,指定宏等等还有这样写的代码如果在隐藏的时候填写了数据点击按钮的话,新添加的数据所在的行不会显示出来,总是隐藏的(这些行都是通过公式自动添加进去的)

追答

那您插入是文本框还是图形?正常的ActiveX控件中有显示代码选项。
另外,该代码只是根据现状修改的,如有其他需求,请一并说明。存在其他代码或公式,条件已改变,不是简单的切换显示和隐藏。

温馨提示:答案为网友推荐,仅供参考
相似回答