автофильтр с критериями 1: = * возвращает все алфавитные ячейки - PullRequest
2 голосов
/ 03 июня 2019

Когда я использую функцию AutoFilter с Criteria1:="*", он возвращает все алфавитные ячейки, а не только ячейки со значением "*".

Предположим, что в столбце 1 возможные значения "*", "Apple", "Tomato", "167", "55". Следующий код возвращает строки, содержащие "*", "Apple" and "Tomato" вместо "*".

Любая помощь приветствуется!

Sheets("Sheet1").Range("$A$1:$U$1291").AutoFilter Field:=1, Criteria1:="*"

1 Ответ

1 голос
/ 04 июня 2019

Расширяя комментарии Скотта и Дэвида:

символ звездочки (*) - это то, что вы называете подстановочным знаком, и он функционирует как критерий сравнения (или нечеткие логические критерии, если вы предпочитаете этот термин).

По сути, написав Criteria1:="*", вы говорите Excel, что в качестве критерия поиска используется любой символ. Пример из документации :

criteria1:="*east" покажет northeast, southeast или что-либо, содержащее east.

Чтобы избежать этого, вы используете тильду ~, за которой следует подстановочный знак, т.е. "~*"

Примеры

"*cake" возвращает cake

"~*cake" возвращает *cake

"c?ke" возвращает c(any character)ke

"c~?ke" возвращает c?ke

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...