创建一个切换按钮,根据列中的“0”值隐藏和取消隐藏行

创建一个切换按钮,根据列中的“0”值隐藏和取消隐藏行

我一直在尝试研究允许我创建切换按钮的特定 VBA 代码,但一直没有成功。

在我的工作表的“I”列中,我指定了使用“0”的值,并想要一个代码来隐藏和取消隐藏与“I”列中的“0”值匹配的行。

我也一直在尝试创建一个切换按钮,选择该按钮时会隐藏和取消隐藏我的行。它从第 7 行开始,到第 491 行结束。

这是我一直在使用的代码,但一直无法正确运行。如果有人能帮忙,我将不胜感激!

Private Sub ToggleButton1_Click()
Dim xAddress As String
xAddress = "I"
If ToggleButton1.Value Then
    Application.ActiveSheet.Rows(xAddress).Hidden = True
Else
    Application.ActiveSheet.Columns(xAddress).Hidden = False
End If
End Sub

Private Sub PG1(ByVal Target As Range)
    If .Range("E7").Value = "Passed" Then
        Rows("7:491").EntireRow.Hidden = True
    End If
    ElseIf Range("E7").Value = "Failed" Then
        Rows("7:491").EntireRow.Hidden = True
    End If
End Sub

答案1

在我的测试表上我创建了两个切换按钮:

  • ToggleButton1(隐藏和取消隐藏 I 列中的 0)
  • ToggleButton2(隐藏和取消隐藏行 7:491)

以下是两者的代码:


Option Explicit

Private Sub ToggleButton1_Click()
    With Me
        If .ToggleButton1.Value = False Then
            If .AutoFilterMode Then .UsedRange.AutoFilter
            .ToggleButton1.Caption = "Hide 0's"
        Else
            .UsedRange.Columns(9).AutoFilter Field:=1, Criteria1:="<>0"
            .ToggleButton1.Caption = "Show 0's"
        End If
    End With
End Sub


Private Sub ToggleButton2_Click()
    Dim e7 As String, changed As Boolean

    With Me
        e7 = .Range("E7").Value2
        If .ToggleButton2.Value = False Then
            .Rows("7:491").EntireRow.Hidden = False
            .ToggleButton2.Caption = "Hide Rows"
        Else
            changed = (e7 = "Passed" Or e7 = "Failed")
            .Rows("7:491").EntireRow.Hidden = changed
            If changed Then .ToggleButton2.Caption = "Show All Rows"
        End If
    End With
End Sub

隐藏或取消隐藏带有按钮的行时,按钮可能会被移动或隐藏,因此

在设计模式中:

  • 右键单击每个按钮
  • 选择Format Control
  • 转到第 3 个选项卡(属性)
  • 选择“不移动或随单元格大小调整”

相关内容