Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2020, 11:59   #1
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию Задать диапазон фильтра

Добрый день!

Подскажите, пожалуйста, можно ли в коде установки фильтра (в макросе) по столбцам задать диапазон фильтра?

Например, есть таблица из 4 столбцов и 10 строк. Надо установить фильтр в первых 3-х столбцах и чтобы в этот фильтр попадали только первые 7 строк.

Если возможно такое, что надо прописать в макросе?

Заранее большое спасибо.
aie.fineff вне форума Ответить с цитированием
Старый 30.04.2020, 12:39   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

А вы запустите макрорекордер, сделайте установку фильтра как вам надо и посмотрите сгенерированный код.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 30.04.2020, 13:10   #3
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
А вы запустите макрорекордер, сделайте установку фильтра как вам надо и посмотрите сгенерированный код.
Это понятно. Но то, что нужно мне, так не определяется.

Например.
Есть таблица A1:H11 (по строке A1:H1 - заголовки столбцов). Надо установить фильтр по диапазону B1:B8 (а не по диапазону B1:B11, как устанавливается автоматически) (т.е. чтобы в списке значений для фильтровки, выпадающем при нажатии стрелки в строке заголовка, были только те значения, которые содержаться в диапазоне B2:B8).

Макрорекордер просто записывает установку фильтра - генерирует код:

Range("B1:B8").Select
Selection.AutoFilter

При этом кодом Selection.AutoFilter макрос устанавливает фильтр на диапазон B1:B11, а не B1:B8.

Вот в чём задача. Облазил интернет, не нашёл ответа. Подскажите, пожалуйста, возможно ли такое сделать? И если возможно - как?

Последний раз редактировалось aie.fineff; 30.04.2020 в 13:22.
aie.fineff вне форума Ответить с цитированием
Старый 30.04.2020, 14:11   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Фильтр применяется к диапазону. Какой тогда смысл в "фильтре", который скроет в первых 8строках, например "Яблоко", а в 10-й не скроет. Как вариант, после 8й строки макросом вставлять пустую строку, тогда фильтр будет применятся от 1-й к 8-й строке
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 30.04.2020, 14:42   #5
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Фильтр применяется к диапазону. Какой тогда смысл в "фильтре", который скроет в первых 8строках, например "Яблоко", а в 10-й не скроет. Как вариант, после 8й строки макросом вставлять пустую строку, тогда фильтр будет применятся от 1-й к 8-й строке
Спасибо. Надо попробовать.
aie.fineff вне форума Ответить с цитированием
Старый 31.05.2020, 16:12   #6
644084
Новичок
Джуниор
 
Регистрация: 22.09.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от aie.fineff Посмотреть сообщение
Добрый день!

Подскажите, пожалуйста, можно ли в коде установки фильтра (в макросе) по столбцам задать диапазон фильтра?

Например, есть таблица из 4 столбцов и 10 строк. Надо установить фильтр в первых 3-х столбцах и чтобы в этот фильтр попадали только первые 7 строк.

Если возможно такое, что надо прописать в макросе?

Заранее большое спасибо.
В макросе установите фильтр и следующей строкой
Rows("8:10").Hidden = True
скройте строки ниже седьмой
644084 вне форума Ответить с цитированием
Старый 31.05.2020, 16:36   #7
644084
Новичок
Джуниор
 
Регистрация: 22.09.2014
Сообщений: 2
По умолчанию

в макросе после включения фильтра скрыть нужный диапазон строк
Range(Rows(8), Rows(10)).Hidden = True
644084 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задать диапазон дат hattter Общие вопросы Web 11 01.08.2019 18:52
Задать условие для Условного Форматирования в зависимости от данных отображаемых при приминении фильтра Goodrich Microsoft Office Excel 2 06.02.2017 14:09
выбрать диапазон после фильтра sergser Microsoft Office Excel 12 28.01.2015 15:38
Не получается задать диапазон Amirhan Microsoft Office Excel 8 20.01.2014 12:41
Не могу разобраться как задать свойства фильтра Besik БД в Delphi 5 02.12.2010 22:49