用于隐藏具有特定文本的两行之间的行的 ActiveX 复选框
ActiveX check box to hide rows between two rows with specific text
我想使用一个复选框来隐藏包含文本 "XXX" 和 "YYY" 的两行之间的所有行。首先,我定义 public 范围并将其设置为包含此 Sub:
文本的单元格
Public Sub Workbook_Open()
Public D1 As Range, D2 As Range
Set D1 = Sheet3.Columns("A").Find(what:="XXX", LookIn:=xlValues, lookat:=xlWhole)
Set D2 = Sheet3.Columns("A").Find(what:="YYY", LookIn:=xlValues, lookat:=xlWhole)
End Sub
然后我像这样设置 activeX 复选框:
Private Sub Check_Click()
If Check = True Then
Sheet3.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = False
Else:
Sheet3.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = True
End If
End Sub
但是,我不断收到以下错误:需要对象。我是否宣布范围错误?我怎样才能解决这个问题?谢谢
根据我在您 post 下方的评论,尝试这样的操作(未测试)
Private Sub Check_Click()
Dim D1 As Range, D2 As Range
With Sheet3
Set D1 = .Columns(1).Find(what:="XXX", LookIn:=xlValues, lookat:=xlWhole)
Set D2 = .Columns(1).Find(what:="YYY", LookIn:=xlValues, lookat:=xlWhole)
If D1 Is Nothing Then Exit Sub
If D2 Is Nothing Then Exit Sub
If Check = True Then
.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = False
Else
.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = True
End If
End With
End Sub
我假设如下
- 您正在使用名为
Check
的 ActiveX 复选框
- 你有一个 sheet 代号
Sheet3
我想使用一个复选框来隐藏包含文本 "XXX" 和 "YYY" 的两行之间的所有行。首先,我定义 public 范围并将其设置为包含此 Sub:
文本的单元格Public Sub Workbook_Open()
Public D1 As Range, D2 As Range
Set D1 = Sheet3.Columns("A").Find(what:="XXX", LookIn:=xlValues, lookat:=xlWhole)
Set D2 = Sheet3.Columns("A").Find(what:="YYY", LookIn:=xlValues, lookat:=xlWhole)
End Sub
然后我像这样设置 activeX 复选框:
Private Sub Check_Click()
If Check = True Then
Sheet3.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = False
Else:
Sheet3.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = True
End If
End Sub
但是,我不断收到以下错误:需要对象。我是否宣布范围错误?我怎样才能解决这个问题?谢谢
根据我在您 post 下方的评论,尝试这样的操作(未测试)
Private Sub Check_Click()
Dim D1 As Range, D2 As Range
With Sheet3
Set D1 = .Columns(1).Find(what:="XXX", LookIn:=xlValues, lookat:=xlWhole)
Set D2 = .Columns(1).Find(what:="YYY", LookIn:=xlValues, lookat:=xlWhole)
If D1 Is Nothing Then Exit Sub
If D2 Is Nothing Then Exit Sub
If Check = True Then
.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = False
Else
.Rows(D1.Row + 1 & ":" & D2.Row - 2).Hidden = True
End If
End With
End Sub
我假设如下
- 您正在使用名为
Check
的 ActiveX 复选框
- 你有一个 sheet 代号
Sheet3