VBA Удалить дубликаты

В Excel есть функция, которая используется для удаления дублирующихся значений из выбранных ячеек, строк или таблицы. Что если этот процесс мы автоматизируем в VBA? Да, процесс удаления дубликата может быть автоматизирован в VBA в виде макроса. В процессе удаления дубликата, после его завершения уникальные значения остаются в списке или таблице. Это можно сделать с помощью функции удаления дубликатов в VBA.

Как использовать Excel VBA Удалить дубликаты?

Мы научимся использовать VBA Remove Duplicates с несколькими примерами в Excel.

Вы можете скачать этот шаблон Excel для удаления дубликатов здесь - VBA Удалить шаблон Excel для дубликатов

Пример № 1 - VBA удаляет дубликаты

У нас есть список чисел, начиная с 1 по 5 и до строки 20 только в столбце А. Как мы видим на скриншоте ниже, все числа повторяются несколько раз.

Теперь наша задача - удалить дубликаты из списка с помощью VBA. Для этого перейдите в окно VBA, нажав клавишу F11.

В этом примере мы увидим, как базовое использование VBA Remove Duplicates может работать с числами. Для этого нам нужен модуль.

Шаг 1: Откройте новый модуль из меню «Вставка», которое находится на вкладке меню «Вставка».

Шаг 2: После открытия напишите подкатегорию VBA Remove Duplicate, как показано ниже.

Код:

 Sub VBARemoveDuplicate1 () End Sub 

Шаг 3: В процессе удаления дубликата, сначала нам нужно выбрать данные. Для этого в VBA мы будем использовать функцию Selection до тех пор, пока она не опустится до полного списка данных, как показано ниже.

Код:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown). Выберите End Sub 

Шаг 4: Теперь мы выберем Диапазон выбранных ячеек или столбцов А. Он будет понижаться, пока у нас не будет данных в определенном столбце. Не только до 20-го ряда.

Код:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown). Выбрать диапазон (Selection, Selection.End (xlUp)). Выбрать End Sub 

Шаг 5: Теперь выберите диапазон ячеек в текущем открытом листе, как показано ниже. Это активирует весь столбец. Мы выбрали столбец А до конца.

Код:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown). Выберите диапазон (Selection, Selection.End (xlUp)). Выберите ActiveSheet.Range ("A: A"). End Sub 

Шаг 6: Теперь используйте функцию RemoveDuplicate здесь. Это активирует команду для удаления повторяющихся значений из последовательности столбцов 1. Если столбцов больше, число будет добавлено и разделено запятыми в скобках как (1, 2, 3, …).

Код:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown). Выберите диапазон (Selection, Selection.End (xlUp)). Выберите ActiveSheet.Range ("A: A"). RemoveDuplicates Столбцы: = 1, End Sub 

Шаг 7: Теперь мы будем использовать команду «Заголовок», которая переместит курсор в самую верхнюю ячейку листа, которая в основном находится в заголовке любой таблицы.

Код:

 Sub VBARemoveDuplicate1 () Selection.End (xlDown). Выберите диапазон (Selection, Selection.End (xlUp)). Выберите ActiveSheet.Range ("A: A"). RemoveDuplicates Столбцы: = 1, Заголовок: = xlYes End Sub 

Шаг 8: Теперь скомпилируйте шаги кода, нажав клавишу F8. После этого нажмите кнопку Play, чтобы запустить код, как показано ниже.

Как мы видим, дубликат числа удаляется из столбца A, и остается только уникальный счет.

Пример №2 - VBA удаляет дубликаты

В этом примере мы увидим, как удалить повторяющиеся значения из нескольких столбцов. Для этого мы рассмотрим тот же список дубликатов, который использовался в примере-1. Но по-новому мы добавили еще 2 столбца с такими же значениями, как показано ниже.

Это еще один метод с немного другим типом структуры кода.

Шаг 1: Откройте новый модуль в VBA и запишите подкатегорию в VBA Remove Duplicate. Если возможно, тогда дайте ему порядковый номер, чтобы было лучше выбрать правильный код для запуска.

Код:

 Sub VBARemoveDuplicate2 () End Sub 

Шаг 2: Сначала выберите полный лист в VBA, как показано ниже.

Код:

 Sub VBARemoveDuplicate2 () Cells.Select End Sub 

Шаг 3: Теперь выберите текущий открытый лист с помощью команды ActiveSheet и выберите столбцы от A до C, как показано ниже.

Код:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). End Sub 

Шаг 4: Теперь выберите команду RemoveDuplicates и после этого выберите массив столбцов от 1 до 3, как показано ниже.

Код:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). RemoveDuplicates Columns: = Array (1, 2, 3), End Sub 

Шаг 5: При последнем использовании команда Header должна быть включена в процесс удаления дубликатов в виде xlYes, как показано ниже.

Код:

 Sub VBARemoveDuplicate2 () Cells.Select ActiveSheet.Range ("A: C"). RemoveDuplicates Столбцы: = Array (1, 2, 3), Заголовок: = xlYes End Sub 

Шаг 6: Теперь скомпилируйте полный код и запустите. Как мы видим ниже, весь лист выбран, но повторяющиеся значения удаляются из столбцов A, B и C, сохраняя только уникальный счет.

Пример № 3 - VBA удаляет дубликаты

Это еще один метод удаления дубликатов, который является самым простым способом удаления дубликатов в VBA. Для этого мы будем использовать данные, которые мы видели в примере-1, а также показаны ниже.

Шаг 1: Теперь перейдите к VBA и снова напишите подкатегорию VBA Remove Duplicates. Мы дали последовательность для каждого кода, который мы показали, чтобы иметь правильную дорожку.

Код:

 Sub VBARemoveDuplicate3 () End Sub 

Шаг 2: Это довольно похожий шаблон, который мы видели в примере 2, но это краткий способ написания кода для удаления дубликатов. Для этого сначала начните с выбора диапазона столбца, как показано ниже. Мы сохранили ограничение до 100- й ячейки столбца A, начиная с 1, за которым следует точка (.)

Код:

 Sub VBARemoveDuplicate3 () Range ("A1: A100"). End Sub 

Шаг 3: Теперь выберите команду RemoveDuplicates, как показано ниже.

Код:

 Sub VBARemoveDuplicate3 () Диапазон ("A1: A100"). RemoveDuplicates End Sub 

Шаг 4: Теперь выберите столбцы A, как с командой Columns с последовательностью 1. И после этого включите Заголовок выбранных столбцов, как показано ниже.

Код:

 Sub VBARemoveDuplicate3 () Range ("A1: A100"). RemoveDuplicates Столбцы: = 1, Заголовок: = xlYes End Sub 

Шаг 5: Теперь скомпилируйте его, нажав клавишу F8, и запустите. Мы увидим, что наш код удалил дубликаты чисел из столбцов A, и только уникальные значения.

Плюсы VBA Удалить дубликаты

  • Это полезно для быстрого удаления дубликатов в любом диапазоне ячеек.
  • Это легко реализовать.
  • При работе с огромным набором данных, где удаление дубликата становится сложным вручную, и он зависает, и VBA Remove Duplicates работает за секунду, чтобы дать нам уникальные значения.

Минусы VBA Удалить дубликаты

  • Использовать VBA Remove Duplicates для очень маленьких данных нецелесообразно, так как это можно легко сделать с помощью функции Remove Duplicate, доступной в строке меню Data.

То, что нужно запомнить

  • Диапазон можно выбрать двумя способами. После того, как выбран предел ячеек, как показано в примере-1, а другой выбирает полный столбец до конца, как показано в примере-1.
  • Убедитесь, что файл сохранен в Macro-Enabled Excel, что позволит нам многократно использовать написанный код, не теряя его.
  • Вы можете оставить значение функции Header равным Да, так как оно будет также считать заголовок при удалении повторяющихся значений. Если в имени заголовка нет повторяющегося значения, то сохранение его как « Нет» не повредит.

Рекомендуемые статьи

Это руководство по удалению дубликатов в VBA. Здесь мы обсудили, как использовать Excel VBA Remove Duplicates вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Работа с VBA Active Cell
  2. Удаление строки в VBA
  3. Как использовать Excel VBA Transpose?
  4. Как исправить ошибку 1004 с помощью VBA

Категория: