Страницы: 1
RSS
Расширенный фильтр не работает с именованным диапазоном критериев
 
Здравствуйте!
Есть ли какая-то не мистическая причина, по которой вот такой код раньше работал, а теперь нет? Вот буквально, не пользовался макросом пару месяцев, вернулся - а там сюрприз.
  Range("input_data[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("criteria_all"), CopyToRange:=Range("S19:AI19"), Unique:=False

Я уже попробовал все, что мне пришло в голову. Диапазоны все 100% именованы. Скопировал все в чистую книгу и попробовал там.
Вот такой код отрабатывает правильно:
Range("input_data[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A15:C16"), CopyToRange:=Range("S19:AI19"), Unique:=False

Я что-то упускаю из виду? Раньше-то все нормально работало.
 
что значит "не работает"? Выводит не то или ошибка появляется?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ошибки нет, но результат его работы = просто скопировать на новое место все строки фильтруемой таблицы, проигнорировав критерии.

Сейчас попробовал не макросом, а просто руками сделать расширенный фильтр - та же история. Если диапазон именован, то при его выделении excel вписывает в поле "диапазон условий" имя. Результат такой фильтрации - чушь. Если вместо имени адрес, то все ок.
 
А Вы проверьте - вдруг в именованном диапазоне не все строки заполнены. Если хотя бы одна пустая - то и результат будет как Вы написали.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Там, действительно, не все строки заполнены. А почему так?
И раньше-то работало именно в точно таком же виде
 
Цитата
mrozengaus написал:
А почему так?
Потому что расширенный фильтр так работает. И всегда работал. Пустая ячейка воспринимается как соответствие любому значению. Угадайте, что будет, если будет включено условие с полностью пустой строкой? Правильно - будут отображены все строки, соответствующие любому значению. Т.е. все.
Сделайте диапазон критериев динамическим, чтобы расширялся в зависимости от заполненных в нем строк.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Потому что расширенный фильтр так работает.
Почитал, как работает расширенный фильтр и понял, что неправильно ответил. Пустых строк в моем условии нет, есть пустые ячейки. Теоретически, это вполне нормальная ситуация. Приложил картинку работающих и не работающих условий.
 
и что в результате хотите получить?
По условиям выглядит так, что хотите отобрать:
строки, значения которых в столбце "deposite_type" не равно ДВ И входят в указанный период И currency_code=0 ИЛИ
строки, значения которых в столбце "deposite_type" не равно ДВ_Юбилей за любой период с любым currency_code.

Так?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх