Ошибка в фильтрации данных при использовании списка в Excel - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть поле со списком, через которое я хочу отфильтровать таблицу, начиная с I6 до L21.Вот снимок списка и таблицы. enter image description here Но когда я выбираю один или несколько параметров и пытаюсь отфильтровать данные из таблицы, возникает ошибка «Требуется объект».Вот мой код

Sub cmd1_Click()
    Dim x As Variant
    ReDim x(0)
    Application.ScreenUpdating = False
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            x(UBound(x)) = ListBox1.List(i)
            ReDim Preserve x(UBound(x) + 1)
        End If
    Next i
    Sheet2.Range("I6:L35").AutoFilter Field:=3, Criteria1:=x, Operator:=xlFilterValues
    Application.ScreenUpdating = True

End Sub

enter image description here

1 Ответ

0 голосов
/ 26 сентября 2019

ListBox1 не существует в этой области.Либо это не так называется, либо иначе не входит в сферу.Проверьте имя, исправьте соответственно.

Но код даже не должен был компилировать с неопределенными идентификаторами в первую очередь.Всегда ставьте Option Explicit в верхней части каждого модуля.

Вы можете установить флажок «Требуется объявление переменной» в диалоговом окне параметров VBE, чтобы автоматически добавлять Option Explicit в каждый модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...