Как исправить ошибку времени выполнения '438' Объект не поддерживает это свойство или метод при применении нескольких фильтров к таблице на основе значений ячеек - PullRequest
0 голосов
/ 26 апреля 2019

Использование Excel 2016. У меня есть два листа в моей книге.Я хотел бы применить два фильтра к таблице на Листе2, используя значения из двух разных ячеек, введенных на Листе1.Я очень плохо знаком с VBA и думаю, что проблема связана с моей фильтрацией, но я не уверен.

Я пробовал несколько вариантов этого кода ListObject, но все заканчивались тем же сообщением об ошибкеи это была самая чистая версия.

Option Explicit

Sub AutoFilter_Table()
'''Filters analysis table to the selected vendor(s)/brand(s) combinations entered on the Information & MACROS tab

Dim vendor As Range, brand As Range
With Sheets("Information_and_MACROS")
    Set vendor = .Range("E19")
    Set brand = .Range("E22")
End With
'''selects vendors/brands to use in filter

Dim lo As ListObject
    Set lo = Worksheets("qry_cost_change_analysis").ListObjects("cost_change_analysis")

With Sheets("qry_cost_change_analysis")
    With .lo
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=vendor
        .AutoFilter Field:=2, Criteria1:=brand
    End With
End With
'''applies filter to the table


End Sub

Я проверил это, введя значение в оба поля и ожидал, что таблица данных будет отфильтрована, чтобы показать только применимые данные.Однако я получил только ошибку времени выполнения.

1 Ответ

0 голосов
/ 27 апреля 2019

Ошибка 438 означает, что не удалось разрешить вызов участника с поздней привязкой.

With Sheets("qry_cost_change_analysis")

Поскольку Sheets возвращает Object, любой вызов члена, связанный с ним, имеет позднюю привязку.Избегайте этого.Извлеките локальные переменные и введите их явно:

Dim costChangeAnalysisSheet As Worksheet
Set costChangeAnalysisSheet = ActiveWorkbook.Worksheets("qry_cost_change_analysis")

With costChangeAnalysisSheet
    .lo '<~ won't show up on intellisense, illegal: "lo" isn't a member of "Worksheet"

Вы, вероятно, хотели работать With lo, , как предложил Рори .

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