Сценарий
У меня есть следующий лист Excel со значениями
Что мне нужно
Я хочу отфильтровать значения только при соблюдении следующих условий
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?


Настройте данные в виде таблицы 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
Данные: