有没有一种方法可以搜索和隐藏不包含在给定单元格中输入的值的所有列?

时间:2019-04-11 13:27:34

标签: excel vba search

我需要隐藏不包含键入到特定单元格中的部分值的所有行,但无法弄清楚如何使用Excel中的VBA将单元格定义为搜索值而不是特定字符串。

我已经能够隐藏所有包含键入到单元格中的确切值但也需要匹配所有部分值的行。

For a = 2 To 200
If Worksheets("Purchase Log").Cells(a, 2).Value = Cells(1, 35) Then    
Worksheets("Purchase Log").Rows(a).Hidden = False 
Else
Worksheets("Purchase Log").Rows(a).Hidden = True
End If

如果我在单元格(1,35)中键入5555并单击按钮,则所有不包含任何序列5555的单元格都将被隐藏,而所有包含(例如)的行 1555522未被隐藏。

2 个答案:

答案 0 :(得分:0)

使用InStr()进行部分匹配:

For a = 2 To 200
    If InStr(Worksheets("Purchase Log").Cells(a, 2).Value, Cells(1, 35).Value) Then 
        Worksheets("Purchase Log").Rows(a).Hidden = False
    Else
        Worksheets("Purchase Log").Rows(a).Hidden = True
    End If
Next a

答案 1 :(得分:0)

使用Like应该可以解决问题:

For a = 2 To 200
    If Worksheets("Purchase Log").Cells(a, 2).Value Like "*" & Cells(1, 35) & "*" Then
        Worksheets("Purchase Log").Rows(a).Hidden = False
    Else
        Worksheets("Purchase Log").Rows(a).Hidden = True
    End If
Next