VBA Excel
241 subscribers
88 photos
23 links
VBA Excel для начинающих. Справка по VBA Excel. Visual Basic for Applications. Справочник. Самоучитель.
Download Telegram
🔄 Метод RemoveDuplicates объекта Range
Метод RemoveDuplicates позволяет удалить повторяющиеся строки в указанном диапазоне, оставляя только первое уникальное вхождение. Это аналог кнопки "Удалить дубликаты" в Excel.

📌 Синтаксис
Range.RemoveDuplicates Columns, Header  

🔹 Columns – массив номеров столбцов, по которым удаляются дубликаты (например, Array(1, 3)).
🔹 Header – указание наличия заголовка:
xlYes – первая строка считается заголовком.
xlNo – все строки участвуют в удалении дубликатов.
xlGuess (по умолчанию) – Excel сам определяет наличие заголовков.

📌 Примеры

1️⃣ Удалить дубликаты по первому столбцу
Sub RemoveDuplicatesOneColumn()  
Range("A1:A10").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub



2️⃣ Удалить дубликаты по нескольким столбцам (A и C)
Sub RemoveDuplicatesMultipleColumns()  
Range("A1:C10").RemoveDuplicates Columns:=Array(1, 3), Header:=xlYes
End Sub



3️⃣ Удалить дубликаты с автоматическим определением заголовка
Sub RemoveDuplicatesAutoHeader()  
Range("A1:D20").RemoveDuplicates Columns:=2, Header:=xlGuess
End Sub



4️⃣ Удалить дубликаты во всём диапазоне данных
Sub RemoveAllDuplicates()  
Dim ws As Worksheet
Set ws = ActiveSheet
ws.UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
End Sub



⚠️ Важно
🔹 Метод сохраняет первое вхождение, удаляя все последующие дубликаты.
🔹 Если Header:=xlYes, Excel не считает заголовок первым вхождением.
🔹 Работает только для строк с точным повторением значений в указанных столбцах — если данные в строке повторяются по указанным столбцам в другом порядке, метод их не удалит.

💡 Когда использовать?
Очистка больших таблиц от повторяющихся данных.
Фильтрация уникальных значений для последующего анализа.

#VBA #ExcelVBA #RemoveDuplicates #Range #УдалениеДубликатов
Простое удаление дубликатов

📌 Примеры

1️⃣ Удаление дубликатов из списка в одном столбце
Sub RemoveDuplicates1()
ActiveSheet.Range("A1:A20").RemoveDuplicates Columns:=Array(1)
End Sub


2️⃣ Удаление строк с дубликатами из таблицы
Sub RemoveDuplicates2()
ActiveSheet.Range("A1:D20").RemoveDuplicates Columns:=Array(3), Header:=xlYes
End Sub

🔹 Из таблицы будут удалены строки, в которых есть повторы значений в заданном столбце (Columns:=Array(3)).
🔹 В параметре Columns может быть задано несколько столбцов, через запятую, для проверки наличия дубликатов в нескольких столбцах. Например: (Columns:=Array(1, 2)).
🔹 Header:=xlYes указывает на то, что в таблице есть заголовки, которые не должны учитываться при поиске дубликатов.

#VBA #ExcelVBA #RemoveDuplicates #УдалениеДубликатов
👍6