Фильтр Dynami c с использованием Excel VBA - PullRequest
0 голосов
/ 13 июля 2020

Привет, я новичок в использовании полей поиска Dynami c для фильтрации в Excel. У меня есть большой набор данных, который я хочу иметь возможность ввести любое значение из таблицы с несколькими столбцами, и все данные с этим значением будут возвращены.

Я превратил весь набор данных в таблицу и использовал concat формула в конце таблицы. Формула для которого: = СЦЕПИТЬ (Таблица4 [@ [Описание валюты]: [SUM No. Отправка данных]] & "")

Описание валюты - первый столбец, SUM No. Отправка данных - последний.

Это по какой-то причине возвращает код ошибки #value, я не уверен, почему.

Я думаю, что поэтому мой код не работает. Теоретически это должно позволить мне набирать любой текст в диапазоне ячеек "search_string", который должен возвращать то, что мне нужно. Я не уверен, почему это не работает, любая помощь будет большой благодарностью. У меня есть следующий код:

Dim KeyCells As Range
Set KeyCells = Range("search_string")

If Not Application.Intersects(KeyCells, Range(Target.Address)) _
Is Nothing Then
FastFilter (KeyCells.Value)

End If


End Sub 


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub 


Sub FastFilter(sch As String)
Dim lo As ListObject
    Set lo = ActiveSheet.ListObjects(4)
    'ListObjects(4) relates to column
    lastcol = lo.ListColumns.Count
    
    If lo.AutoFilter.FilterMode Then
        lo.AutoFilter.ShowAllData
        lo.Range.AutoFilter Field:=lastcol, Criteria1:= _
            Array("*" + sch + "*"), Operator:=xlFilterValues
        Else
        lo.Range.AutoFilter Field:=lastcol, Criteria1:= _
            Array("*" + sch + "*"), Operator:=xlFilterValues
            '* adds wild card search
        End If
    Range("search_string").Select
End Sub ```

...