Вы можете установить тот же фильтр с помощью VBA, который вы можете установить в Excel, поэтому вам следует сначала попытаться найти параметр фильтра в Excel, который соответствует вашим потребностям.
Когда он будет найден, удалите фильтр и запишите макрос при настройке фильтра. снова - это покажет вам, как установить его с помощью VBA.
В вашем случае я установил настраиваемый фильтр: нажмите кнопку фильтра в этом столбце, выберите либо числовые фильтры, либо текстовые фильтры (отображаемые в зависимости от того, что Excel предполагает, что это основной тип данных этого столбца), и выберите настраиваемый фильтр.
![введите здесь описание изображения](https://i.stack.imgur.com/m3vqQ.jpg)
Там выберите содержит и введите ?
в качестве значения поиска.
![введите здесь описание изображения](https://i.stack.imgur.com/v6lDD.jpg)
Если это соответствует вашим потребностям, это код в VBA:
.AutoFilter Field:=1, Criteria1:="=*?*", Operator:=xlAnd
Если это не соответствует вашим потребностям, потому что ваш фильтр еще более сложный, единственная идея, которая у меня есть, состоит в том, чтобы создать вспомогательный столбец, написать UDF, который возвращает либо True
, либо False
в зависимости от того, должно ли значение отображаться или нет, и фильтровать по этому вместо этого вспомогательный столбец (вы можете использовать регулярные выражения в этой определяемой пользователем функции).
Или вручную выполните цикл по своим данным и решите в своем коде, какая строка подходит, но будьте осторожны при удалении данных, либо выполните цикл назад, либо создайте объединение и удалите в один раз - много примеров для этого на SO.
20.08.2020
union
и удалите все сразу — удаление строк — одна из самых медленных операций в VBA/Excel. См. stackoverflow.com/a/33744707/7599798, чтобы получить представление 26.08.2020