01 Что делает макрос
Если у вас много записей в диапазоне, вы можете скрыть все не повторяющиеся строки.
Этот макрос перечисляет ячейки в целевом диапазоне, используя оператор For Each, чтобы последовательно активировать каждую ячейку. Затем мы используем функцию СЧЕТЕСЛИ, чтоб подсчитать, сколько раз значение в активной ячейке находится в выбранном диапазоне. Если это число один, мы скрываем строку, в которой находится активная ячейка. Если это число больше единицы, тогда макрос делает ячейку желтой и оставляет строку видимой.
02 Код макроса
Sub
SkritPovtoryayuschiesyaStroki()
'Шаг 1: Объявляем переменные
Dim
MyRange
As
Range
Dim
MyCell
As
Range
'Шаг 2: Определяем целевой диапазон
Set
MyRange = Selection
'Шаг №: Запускаем цикл по диапазону
For
Each
MyCell
In
MyRange
'Шаг 4: Проверяем, чтобы ячейка не была пустой, проверяем количество повторяющихся ячеек
If
Not
IsEmpty(MyCell)
Then
If
WorksheetFunction.CountIf(MyRange, MyCell) > 1
Then
MyCell.Interior.ColorIndex = 36
MyCell.EntireRow.Hidden =
False
Else
MyCell.EntireRow.Hidden =
True
End
If
End
If
'Шаг 5: Получаем следующую ячейку в диапазоне
Next
MyCell
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет две переменные объекта Range.
2. Шаг 2 заполняет переменную MyRange с целевым диапазоном.
3. Шаг 3 запускает цикл через каждую ячейку в целевом диапазоне, активизируя каждую из них.
4. Сначала мы используем функцию IsEmpty, чтобы убедиться, что ячейка не пуста. Макрос не будет скрывать строки без данных. Затем мы используем объект WorksheetFunction, чтобы запустить функцию СЧЕТЕСЛИ в VBA. В данном случае, мы считаем количество ячеек (MyCell.Value), которые находятся в указанном диапазоне (MyRange). Если выражение СЧЕТЕСЛИ имеет значение больше 1, то мы меняем цвет ячейки и устанавливаем свойство EntireRow Hidden = False. Это гарантирует, что строка будет видна.
Если выражение СЧЕТЕСЛИ не принимает значение больше 1, то макрос переходит к аргументу Else. Здесь мы устанавливаем свойство EntireRow Hidden = True. Это гарантирует, что строка не видна.
5. Шаг 5 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь