У меня есть таблица, которая имеет 3 столбца, а под каждым столбцом много текста.

Как создать фильтр, чтобы я мог найти все вхождения данного текста в любом из этих столбцов и показывать только те строки, в которых он есть, независимо от того, в каком столбце он был найден.

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .