Как скрыть повторяющиеся строки

Что делает макрос: С помощью одного из макросов в справочнике макроса, вы можете быстро найти и выделить дубликаты ваших данных. Это может быть весьма полезно. Но если у вас много записей в диапазоне, вы можете сделать дополнительный шаг — скрыть все не повторяющиеся строки.

Как макрос работает

Этот макрос перечисляет ячейки в целевом диапазоне, используя оператор For Each, чтобы активировать каждую ячейку по одной за раз. Затем мы используем функцию СЧЕТЕСЛИ, чтоб подсчитать, сколько раз значение в активной ячейке находится в выбранном диапазоне. Если это число один, мы скрываем строку, в которой находится активная ячейка. Если это число больше единицы, тогда формат ячейки желтый и оставляем строку видной.

Код макроса

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

Как этот код работает

  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 повторяет цикл, чтобы получить следующую ячейку. После просмотра всех ячеек в целевом диапазоне макрос заканчивается.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.
Оцените статью
Добавить комментарий