如何使用多列过滤一行

如何使用多列过滤一行

我这里有一个电子表格,它有 3 列,每列下面有很多文本。

如何创建一个过滤器,以便我可以在任何这些列中找到给定文本的所有出现,并且只显示包含该文本的行,而不管找到该文本的列。

答案1

好的,我刚才做的是创建一个过滤器和一个宏,将过滤器设置为某个单元格的值。

按照我从互联网上复制的代码并做了一些改动。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim iFilterColumn As Integer
    Dim rFilter As Range
    Dim sCriteria As String
    On Error Resume Next
    With Target
        Set rFilter = .Parent.AutoFilter.Range
        iFilterColumn = .Column + 1 - rFilter.Columns(1).Column
        If Intersect(Target, Range("rCriteria")) Is Nothing Then GoTo Terminator
        Select Case Left(.Value, 1)
        Case ">", "<"
            sCriteria = .Value
        Case Else
            sCriteria = "=*" & .Value & "*"
        End Select
        If sCriteria = "=" Then
            .Parent.Range(rFilter.Address).AutoFilter Field:=iFilterColumn
        Else
            .Parent.Range(rFilter.Address).AutoFilter Field:=iFilterColumn, Criteria1:=sCriteria
        End If
    End With
Terminator:
    Set rFilter = Nothing
    On Error GoTo 0
End Sub

相关内容