Как отфильтровать несколько столбцов с условием с помощью Excel VBA

Сценарий

У меня есть следующий лист Excel со значениями

Как отфильтровать несколько столбцов с условием с помощью Excel VBA

Что мне нужно

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

If Status = "RO" OR Status = "SS" OR (Status = "NO" AND StartDate <>"") OR Status = "INVEST")

используя фильтр Excel с VBA.

Это очень большая таблица, и если это возможно с помощью методов фильтрации, это будет быстрее, чем сравнивать значения по одному и копировать одно за другим. Вот почему я хочу использовать фильтр. Это возможно?

Обычная запись, дающая только следующее, что я не могу понять, как сделать в моей ситуации

Например: ActiveSheet.Range("$A$3:$D$21").AutoFilter Field:=4, Criteria1: = "SS"

Но как проверить с фильтром if blank on start date and a particular value on Status?

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
756
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Настройте данные в виде таблицы Excel, выбрав ячейку в заполненном диапазоне и нажав Ctrl + T.

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

=OR([Status] = "RO", [Status]  = "SS", AND([Status] = "NO",[Start Date] <>""),[Status] = "INVEST")

Используйте в коде следующие строки VBA:

With ThisWorkbook.Worksheets("Yoursheetname").ListObjects("YourTableName").Range
    .AutoFilter
    .AutoFilter Field:=5, Criteria1:= _
    "TRUE"
End With

Данные:

data

Другие вопросы по теме

Как выбрать список, если список содержит определенный текст с использованием слова VBA
Как сделать вызываемую ячейку уникальной для каждого листа?
Будет ли этот код когда-либо повторять значение? Мне нужен номер, который никогда не будет повторяться и не требует сохраненной переменной
Как обрабатывать ошибку, возникшую в событии Workbook_Open другой книги?
Как применить код VBA к каждой странице книги? Mine выполняет часть кода на каждой странице, но применяет весь код только к последней странице
Получение файла ошибки 3024 не найден для загадочного файла, даже не используемого программой? (dbo.mdb)
Автоматическое заполнение ячеек в строке на основе раскрывающегося списка Active-x
Код VBA - пользовательская сортировка всех столбцов, ЗА ИСКЛЮЧЕНИЕМ столбца даты
Предлагать пользователю подтвердить удаление строки
Как запретить пользователю сохранять файл в любой каталог, кроме одного определенного места?

Похожие вопросы

Табель сверхурочных часов суммируется
Как сделать вызываемую ячейку уникальной для каждого листа?
Будет ли этот код когда-либо повторять значение? Мне нужен номер, который никогда не будет повторяться и не требует сохраненной переменной
Найти наибольшее значение и вернуть значение смежной ячейки с дубликатами в Excel
Если ячейка содержит несколько экземпляров определенного текста, извлеките верхние 3 указанного текста, найденного в ячейке
Как обрабатывать ошибку, возникшую в событии Workbook_Open другой книги?
Как применить код VBA к каждой странице книги? Mine выполняет часть кода на каждой странице, но применяет весь код только к последней странице
Рассчитать коэффициент вариации в сводной таблице (Excel)?
Автоматическое заполнение ячеек в строке на основе раскрывающегося списка Active-x
Я хочу использовать sumproduct для двух разных таблиц на основе 3-й таблицы