Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392

Фильтрация для всех колонок

01.06.2017, 20:46. Показов 1373. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не получается написать правильный макрос для фильтрации всех колонок по одному значению. То есть, если похожая запись будет хоть в одной ячейке, то вся строка должна быть видна.
Мой код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
    With ActiveSheet
        .AutoFilterMode = False
        .UsedRange.AutoFilter
            
        .UsedRange.AutoFilter field:=1, Criteria1:="*" & Me.TextBox1.Value & "*" ', Operator:=xlOr
        .UsedRange.AutoFilter field:=2, Criteria1:="*" & Me.TextBox1.Value & "*" ', Operator:=xlOr
        .UsedRange.AutoFilter field:=3, Criteria1:="*" & Me.TextBox1.Value & "*" ', Operator:=xlOr
        .UsedRange.AutoFilter field:=4, Criteria1:="*" & Me.TextBox1.Value & "*" ', Operator:=xlOr
        .UsedRange.AutoFilter field:=5, Criteria1:="*" & Me.TextBox1.Value & "*" ', Operator:=xlOr
        .UsedRange.AutoFilter field:=6, Criteria1:="*" & Me.TextBox1.Value & "*" ', Operator:=xlOr
    End With
Помогите исправить.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2017, 20:46
Ответы с готовыми решениями:

Фильтрация DGV с русскими именами колонок
Ребят, ни как не могу понять в чем проблема. Вообщем сейчас датагридвью заполняется и фильтруется так: var prop = IPDynamic.PingIP; ...

Как сложить числа всех колонок и всех строк
Здравствуйте! Помогите пожалуйста! Как можно сложить числа всех колонок и всех строк? Для понимание сделал скриншот. Там где id_month =1 ...

Вывод всех колонок БД в dbgrid
Есть таблица, при загрузке БД в нее выводится каждая колонка отдельно: Нужно чтобы все колонки выводились сразу в одно окно, чтобы не...

11
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
01.06.2017, 22:56
Если нужна именно фильтрация, то можете использовать расширенный фильтр. Правда, при этом способе потребуется несколько дополнительных ячеек листа (2ячейки, если использовать формулу, или 6x2ячеек, если критерий отбора будет константа)

Если же подойдёт простое скрытие строк, то можете попробовать что-то типо :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Test()
    Application.ScreenUpdating = False
    
    Dim iText$, iRow As Range
    iText = "*" & TextBox1.Value & "*"
    For Each iRow In ActiveSheet.UsedRange.Rows
        iRow.Hidden = Application.CountIf(iRow, iText) = 0
    Next
 
    Application.ScreenUpdating = True
End Sub
1
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392
01.06.2017, 23:40  [ТС]
Я тут подумал, может быть сделать "суммирование" всех ячеек в строке в новой колонке, далее сделать эту новую колонку невидимой. И фильтровать по ячейкам из этой колонки. Такое возможно? Или плохой вариант?
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
02.06.2017, 07:54
vlanatvaszla, Можете об'яснить, чем целый столбец дополнительных ячеек лучше двух ячеек, которые использует расширенный фильтр ...

Или Вам просто не хочется читать справку, касаемо р.ф., где говорится о возможности использования формулы, в качестве критерия отбора, тогда киньте на форум небольшой фрагмент таблицы (без конфиденциальных данных) и кто-нибудь из читателей топика, выложит готовый пример с расширенным фильтром.
1
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392
02.06.2017, 14:23  [ТС]
pashulka, просто я в Excel не очень то разбираюсь. vba для меня роднее. Файл я конечно же выкладываю. Если кто-то захочет помочь, буду только рад.
Вложения
Тип файла: 7z Documents to Evernote organizer3.7z (112.6 Кб, 3 просмотров)
0
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392
02.06.2017, 15:52  [ТС]
Visual Basic
1
2
    Range("A10:F13").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("A1:F6"), Unique:=False
Не работает, в общем...
Миниатюры
Фильтрация для всех колонок  
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
02.06.2017, 16:14
Для чисел не работает критерий - содержит, т.е. если в столбце наличествует 888, то критерий *8* не позволит отобразить строки с этим числом (причём это актуально не только для расширенного фильтра, но и для автофильтра тоже)
0
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392
02.06.2017, 16:25  [ТС]
Спасибо за пояснение. Я изменил значение для поиска на *toks*. Фильтрация скрывает все записи, хотя в последней ячейки первой записи и предпоследней ячейке второй записи есть слово stock.
Миниатюры
Фильтрация для всех колонок  
0
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392
02.06.2017, 16:30  [ТС]
Результат фильтрации по первой ячейке. Выводятся все записи.
Миниатюры
Фильтрация для всех колонок  
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
02.06.2017, 16:39
За отсутствием данных (две-три строки в исходном файле - не считаются) такой пример :
Вложения
Тип файла: zip Sample_for_Vlanatvaszla.zip (3.7 Кб, 3 просмотров)
1
0 / 4 / 0
Регистрация: 10.09.2016
Сообщений: 392
02.06.2017, 18:42  [ТС]
pashulka, большое спасибо.

Если всё же, кто-нибудь укажет правильный способ расширенной фильтрации в vba и/или найдёт в моём примере ошибку, буду благодарен.
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
02.06.2017, 21:03
В примере - в качестве реального диапазона условий, была указана одна единственная (что уже неправильно) и пустая ячейка. Дальше пошли скриншоты, а это уже ниочём, ибо ни данных, ни кода фильтрации, только картинки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2017, 21:03
Помогаю со студенческими работами здесь

Найти сумму произведений всех колонок
Дан двумерный массив действительных чисел. Найти сумму произведений всех колонок.

Звук 5.1 из всех 5 колонок при просмотре ТВ-программ
Добрый день! Вопрос. Был телевизор, были аналоговые колонки 5.1 При просмотре DVD шел чистый звук в 5.1. При просмотре кабельного ТВ...

Извлечение значений из всех колонок списка в одну строку в Access
Доброго времени суток! У меня такая задача: на форме расположен список у которого несколько колонок и мне надо, чтобы при двойном щелчке на...

Посчитать ActualWidth всех колонок в DataGrid при любых изменениях
Как узнать общую ширину всех колонок при изменении одной из колонок вручную или автоматически? То есть это нужно, чтобы Popup всплывал...

Как программно получить имена всех колонок реквизита формы, имеющего тип ДанныеФормыКоллекция?
как программно получить имена всех колонок реквизита формы, имеющего тип ДанныеФормыКоллекция? Имеется реквизит упр формы, типа таблица...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru