Несмотря на количество вопросов по этой теме, я не смог найти решение своей проблемы (в чем может быть моя вина, а может и нет).
Мне нужно автофильтровать диапазон, чтобы возвращать пробелы и числа, начинающиеся с 614.
Этот столбец был предварительно отформатирован с использованием следующего:
Range("B:C").NumberFormat = "###0"
Это сделано для того, чтобы удалить формат экспоненциальной записи, который Excel хочет использовать для некоторых чисел.
Затем я использую следующее, чтобы применить фильтр:
With ActiveSheet
.AutoFilterMode = False 'remove any active filters
.Range("A1:O1").AutoFilter Field:=2, Criteria1:="614*", Operator:=xlOr, Criteria2:="="
End With
Независимо от того, как я применяю фильтр, включая использование массива, фильтр возвращает только пустые значения. Я также использовал Criteria1:="=614*" для того же результата.
Единственное, в чем я уверен, так это в том, что номер будет начинаться с 614 и будет иметь множество комбинаций.
Проблема с типом данных? Пробелы - это строки, а числа - это числа? Был только один блог, в котором немного затрагивалась эта проблема и, похоже, было указано, что я не могу использовать подстановочные знаки в этом случае. Это верно?
По сути, это австралийские мобильные номера, поэтому они имеют длину 11 символов, причем только первые 3 являются постоянными. Вот почему я действительно хочу использовать подстановочный знак для поиска этих записей. Мне нужно исключить их и пробелы из набора данных. Согласно вашим ответам и тому, что я в значительной степени начал понимать, мой единственный выбор - преобразовать числа в строки, если я хочу сделать это как одноэтапный процесс. Это повлияет на более поздний код. Я предполагаю, что это нельзя сделать как часть критериев автофильтра (принятие желаемого за действительное)?
Starts With
. Или найдите числа6140<=x<=6149
. - person Byron Wall   schedule 21.05.2015