我一直在尝试研究允许我创建切换按钮的特定 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 个选项卡(属性)
- 选择“不移动或随单元格大小调整”