VBA:从复选框中取消隐藏数组中包含值的行
我有三个复选框(猫、狗、鼠标),我在excel中有以下数据集(字母是列) 我有以下代码:VBA:从复选框中取消隐藏数组中包含值的行,vba,excel,checkbox,Vba,Excel,Checkbox,我有三个复选框(猫、狗、鼠标),我在excel中有以下数据集(字母是列) 我有以下代码: Dim num As Integer arrcriteria = Array("Cat", "Dog", "Mouse") Set temprange = ActiveSheet.Range("A1").End(xlDown) Set temprange = Range(Range("A2"), temprange) For Each z In temprange z.EntireRo
Dim num As Integer
arrcriteria = Array("Cat", "Dog", "Mouse")
Set temprange = ActiveSheet.Range("A1").End(xlDown)
Set temprange = Range(Range("A2"), temprange)
For Each z In temprange
z.EntireRow.Hidden = True
For num = 1 To 3
If Me.Controls("Checkbox" & num) Then
If InStr(1, z.Value, arrcriteria(num - 1), 1) = 1 Then
z.EntireRow.Hidden = False
Elseif InStr(1, z.offset(0,1).Value, arrcriteria(num - 1), 1) = 1 Then
z.EntireRow.Hidden = False
Elseif InStr(1, z.offset(0,2).Value, arrcriteria(num - 1), 1) = 1 Then
z.EntireRow.Hidden = False
Else
'Remain hidden
End If
End if
Next num
但是,我希望更改代码,以便在该行中仅存在所有选定条件时隐藏行。例如,如果我选择“猫”和“狗”,则仅显示以下内容:
A B C
Dog Mouse Cat
Dog Cat Cat
你知道怎么做吗
先谢谢你
@Dinks123能否将此问题的答案标记为完整?@Dinks123能否将此问题的答案标记为完整?
A B C
Dog Mouse Cat
Dog Cat Cat
Dim num As Integer
Dim RowString As String
Dim RowHide As Boolean
Dim Z As Range
arrcriteria = Array("Cat", "Dog", "Mouse")
Set temprange = ActiveSheet.Range("A1").End(xlDown)
Set temprange = Range(Range("A2"), temprange)
For Each Z In temprange
With Z
Z.EntireRow.Hidden = False
RowString = .Value & .Offset(0, 1).Value & .Offset(0, 2).Value
RowHide = False
For num = 1 To 3
If Me.Controls("Checkbox" & num) And _
InStr(1, RowString, arrcriteria(num - 1), 1) = 0 _
Then RowHide = True
Next num
If RowHide Then Z.EntireRow.Hidden = True
End With
Next Z