Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/57: Рейтинг темы: голосов - 57, средняя оценка - 4.82
7 / 7 / 0
Регистрация: 14.03.2013
Сообщений: 231

Как отфильтровать уже отфильтрованные значения таблице Excel

15.04.2013, 14:41. Показов 12098. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет.
С помошью команды:
Visual Basic
1
Workbooks("file.xls").Worksheets("Sheet1").UsedRange.AutoFilter Field:=1, Criteria1:=filter, Operator:=xlFilterValues
автоматически отфильтровал по первому полю таблицу с данными (UsedRange) по значению из массива filter.

А теперь как мне из этого отфильтрованного объема данных отфильтровать дополнительно но уже по другому полю (например №2)?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.04.2013, 14:41
Ответы с готовыми решениями:

Как отфильтровать подстановочные значения в таблице по значению предыдущего столбца
Подскажите, пожалуйста! Есть таблица БД в которой значения трёх первых столбцов вводятся подстановкой из других таблиц. Как сделать,...

Как подсчитать отфильтрованные записи в таблице?
Вопрос простенький, как подсчитать отфильтрованные записи в таблице

Как суммировать только отфильтрованные значения
Добрый день, Скажите, пожалуйста, как заставить excel считать сумму только тех ячеек, которые видны в конкретный момент времени....

42
7 / 7 / 0
Регистрация: 14.03.2013
Сообщений: 231
26.04.2013, 20:31  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от oleggy Посмотреть сообщение
Может кто подскажет, почему так?

Первый раз я прменил автофильтр и отфильтровал колонку №1 по массиву filter_1, так:

.AutoFilter Field:=1, Criteria1:=filter_1, Operator:=xlFilterValues

Далее из полученного списка отфильтрованных значений из колонки №2, я сформировал новый массив фильтрации - filter_2, и применил фильтр повторно к колонке №2, командой:

.AutoFilter Field:=2, Criteria1:=filter_2, Operator:=xlFilterValues

На выходе получилось что автофильтр отфильтровал некорректно. Точнее, в колонке №2 по всем данным были сняты галочки. Вот, смотрите на рисунке.

А должно было что бы стояли галочки напротив данных которые были в массие filter_2.

Может я чего то непонял?
Разобрался, из-за чего повторная фильтрация не шла в уже отфильтрованном фильтре.
Оказывается для фильтрации критерии должны передаваться в автофильтр в виде строковых значений (а не цифровых) и причем в том же формате в котором они у нас хранились ячейках.
Т.е. при сохранении в массив критериев (для последующей передачи в автофильтр) они должны быть сохранены в таком виде:
Visual Basic
1
Format(cel.Value, cel.DisplayFormat.NumberFormat)
0
7 / 7 / 0
Регистрация: 14.03.2013
Сообщений: 231
29.04.2013, 08:22  [ТС]
Цитата Сообщение от Hugo121 Посмотреть сообщение
Цитата Сообщение от oleggy Посмотреть сообщение
Спасибо, существует код котрый перебирает скрытые ячейки?

Visual Basic
1
2
3
4
Set r = .AutoFilter.Range.Сolumns(1).SpecialCells(xlCellTypeVisible)
for each сel in r
 ' работаю с cel
next
к сожалению свойства противоположного - xlCellTypeVisible, я не нашел..
Я помню делал так - сперва
set r=видимые
затем отображал всё, скрывал r - получаем видимыми ранее скрытые.
Такой способ подразумевает активные действия над ячейками (отображать и скрывать).
Мне же нужен способ который не будет изменять отображение ячеек.

Добавлено через 2 часа 23 минуты
Цитата Сообщение от Казанский Посмотреть сообщение
Отфильтрованные ячейки - это видимые ячейки. Диапазон, включая заголовок, можно получить так:
Visual Basic
1
set rng=Workbooks("file.xls").Worksheets("Sheet1").autofilter.range.columns(2).specialcells(xlcelltypevisible)
Или перебирать все ячейки из .columns(2) и проверять свойство .entirerow.hidden.
Казанский, что за свойство это и что оно дает?
В чем его отличие от Range.Hidden?
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 24
20.03.2017, 15:46
Други, всё прочитал, но туплю.
1.Есть таблица, автофильтром по первому столбцу отфильтровал данные, но никак не пойму как мне выбрать/использовать допустим 2-е отфильтрованное значение во втором столбце напрямую без массивов, переборов.
Это возможно или нужно обязательно заносить значения в массив или копировать список на другой лист, а там выбирать нужное значение.
У меня поучилось только:
Visual Basic
1
2
AutoFilter.Range.Columns(2).Copy
Sheets(2).Paste ' А дальше обращаюсь к ячейкам, но это как то через одно место.
По простому присвоить значения в массив не получилось, ошибка 13"Type mismatch"
Visual Basic
1
arr = Sheets(1).AutoFilter.Range.Offset(1).Resize(Sheets(1).AutoFilter.Range.Rows.Count -1)Columns(2)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2017, 15:46

Как исключить из Comboboxa значения, которые уже были введены в ячейки Excel?
Вот, допустим, я ввожу данные в 4-х combobox'ax, после ввода нажатием кнопки, каждый combobox вводится в таблицу Excel, каждый комбобокс...

Как отфильтровать дубликаты записей в таблице?
Всем привет Нужна помощь есть табличка в ней записи (время, название обекта, и тд) эти записи множество раз дублируются нужно зделать...

Экспорт в Excel отфильтрованные данные из подчиненной формы
Возникла следующая задача - в Аксе на форме есть подчиненная табличная форма, созданная на основе сохраненного SQL-запроса. Необходимо...

Как отфильтровать ячейки с формулами в 2007 Excel?
Здравствуйте. Как можно отфильтровать ячейки, отображаемый результат которых формируется забитыми в них формулами в Excel 2007? ...

Добавить значение в таблицу, только в том случае, если в таблице уже нету такого значения.
Есть метод добавления в таблицу данных. Как мне сделать так, чтобы значение добавилось только в том случае, если в таблице нету уже такого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru