Ошибка при фильтрации после попытки создать массив в Excel с vba - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь взять список имен и отфильтровать другой список в зависимости от того, появляются ли эти имена. Для этого я хочу создать массив имен, а затем взять этот массив, чтобы применить автофильтр к другому листу из указанного столбца c. Вот код, который у меня сейчас есть:

Dim AdvisorEINs As Variant

    AdvisorEINs = Worksheets("Names to Filter").Range("A1:A36").Value
    Worksheets("All Advisors").Range("$A$1:$DZ$2216").AutoFilter Field:=15, Criteria1:=AdvisorEINs.Value, Operator:=xlFilterValues

В настоящее время он возвращает Run-time error '424': Object required, когда при попытке запуска и отладке выделяется строка фильтрации. Я добавил Debug.Print в переменную AdvisorEINs, которая выводит то же сообщение об ошибке и подсказывает мне, что это происходит из-за того, что переменная неправильно собирает данные. Я не уверен, как заставить массив собирать данные любым другим способом - кто-то может посоветовать это?

1 Ответ

2 голосов
/ 09 апреля 2020

вам нужно

  • использовать AdvisorEINs вместо AdvisorEINs.Value

  • транспонировать массив, потому что свойство Value многоклеточный диапазон возвращает двумерный массив (хотя только с одним столбцом ...)

следующим образом:

Dim AdvisorEINs As Variant

AdvisorEINs = Worksheets("Names to Filter").Range("A1:A36").Value
Worksheets("All Advisors").Range("$A$1:$DZ$2216").AutoFilter Field:=15, Criteria1:=Application.Transpose(AdvisorEINs), Operator:=xlFilterValues
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...