Фильтр VBA из диапазона, который был установлен - PullRequest
1 голос
/ 04 августа 2020

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

Dim myTable As Range
Set myTable = ActiveSheet.Range("A1").CurrentRegion

Итак, я подумал, что когда я хочу фильтровать, я должен делать что-то вроде

ActiveSheet.ListObjects("myTable").AutoFilter Field:=10, Criteria1:="AUGUST"

Но кажется, быть ошибкой, говоря: «Подстрочный индекс вне диапазона»

Возможно, я ошибаюсь насчет части диапазона. Потому что, когда я использую, например: range ("A1: K500"), он работает нормально. Но я действительно предпочитаю, чтобы он находился в диапазоне CurrentRegion, поскольку эти данные могут быть в разных диапазонах каждый месяц, поэтому было бы слишком сложно каждый раз изменять диапазон в VBA вручную. Спасибо

1 Ответ

1 голос
/ 04 августа 2020

Попробуйте заменить

ActiveSheet.ListObjects("myTable").AutoFilter Field:=10, Criteria1:="AUGUST"

на

myTable.AutoFilter Field:=10, Criteria1:="AUGUST"

Если есть таблица с именем «myTable», вы можете использовать приведенный выше код, не нуждаясь в каком-либо предварительном наборе диапазонов. Если есть только одна таблица, вы можете использовать:

ActiveSheet.ListObjects(1).AutoFilter Field:=10, Criteria1:="AUGUST"
...