Я ищу для фильтрации столбца на основе кода, который пользователь помещает в поле ввода.

Я использовал следующий код:

Sub Filter()
'
' Filter Macro
Dim strName As String
strName = InputBox(“What DMA would you like to search for?”)
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AS$355969").AutoFilter Field:=3, Criteria1:="=*" & strName & “ * ”, Operator:=xlAnd
End Sub

Но это показывает ошибку компиляции: синтаксическая ошибка в макросе Excel

Может кто-то помочь мне, пожалуйста?

Спасибо, Дивья С

2 ответа2

0

Вы можете попробовать этот простой код для фильтрации:

Sub InputFilter()
Dim strInput As String
strInput = InputBox("Enter your value to filter on")
Selection.AutoFilter
ActiveSheet.Range("$A$60:$A$65").AutoFilter Field:=1, Criteria1:=strInput
End Sub

Примечание: значение Field Помни в коде настраивается, если Критерии соответствуют столбцу 2 для фильтрации, тогда это должно быть Field:=2

Обратите внимание, при необходимости измените ссылки на ячейки.

0

Я предполагаю, что вы хотите сопоставление с подстановочными знаками, поэтому вам не нужны дополнительные пробелы во втором подстановочном знаке. Кроме того, вам нужно исправить "" и отключение ScreenUpdating является хорошей идеей. Вы также можете использовать с Statememt для вашего диапазона. Лучше было бы использовать явное имя листа, а не Activesheet, если текущий Activesheet не тот, который вы ожидали.

Option Explicit
Public Sub Filter()
    Application.ScreenUpdating = False
    Dim strName As String
    strName = InputBox("What DMA would you like to search for?")
    With ActiveSheet.Range("$A$1:$AS$355969")
        .AutoFilter
        .AutoFilter Field:=3, Criteria1:="*" & strName & "*"
    End With
    Application.ScreenUpdating = True
End Sub

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