Удаление дубликатов в Excel VBA - макросы Easy Excel

Содержание

Ниже мы рассмотрим программу на Excel VBA тот удаляет дубликаты.

Ситуация:

В столбце А у нас 10 чисел. Мы хотим удалить дубликаты этих чисел и поместить уникальные числа в столбец B.

1. Сначала мы объявляем четыре переменные. toAdd типа Boolean, uniqueNumbers типа Integer, i типа Integer и j типа Integer.

Dim toAdd As Boolean, uniqueNumbers as Integer, i As Integer, j As Integer

2. Затем мы записываем первый номер столбца A в столбец B, поскольку первое число всегда «уникально».

Ячейки (1, 2) .Значение = Ячейки (1, 1) .Значение

3. Инициализируем две переменные. Мы только что добавили одно число в столбец B, поэтому мы инициализируем uniqueNumbers значением 1. Мы устанавливаем для Addd значение True, предполагая, что следующее число также нужно добавить (это, конечно, не обязательно так).

uniqueNumbers = 1
toAdd = True

Нам нужно определить, является ли второе число «уникальным» или нет. Это можно сделать очень просто. Только если число еще не находится в столбце B, второе число необходимо добавить в столбец B.

4. Нам также нужно проверить это для третьего числа, четвертого числа и так далее. Для этого мы запускаем цикл For Next.

Для i = от 2 до 10

5. Теперь переходит к самой важной части программы. Если второе число равно одному из чисел в столбце B (пока у нас есть только один уникальный номер), мы устанавливаем для Addd значение False, потому что в этом случае мы не хотим добавлять это число! (это не «уникально»). На данный момент uniqueNumbers по-прежнему равен 1, но uniqueNumbers может быть целым списком. Чтобы проверить весь этот список, нам понадобится еще один цикл For Next. Опять же: если число, которое мы хотим добавить, равно одному из чисел в этом списке, toAdd будет установлено значение False, и число не будет добавлено. Добавьте следующие строки кода:

Для j = 1 To uniqueNumbers
Если Cells (i, 1) .Value = Cells (j, 2) .Value, то
toAdd = Ложь
Конец, если
Следующий j

6. Только если toAdd по-прежнему имеет значение True и не установлено значение False, Excel VBA необходимо добавить число в столбец B. В то же время мы увеличиваем uniqueNumbers на 1, потому что теперь у нас есть еще одно уникальное число. Следующие строки кода выполняют свою работу:

Если toAdd = True, то
Ячейки (uniqueNumbers + 1, 2) .Значение = Ячейки (i, 1) .Значение
uniqueNumbers = uniqueNumbers + 1
Конец, если

7. Наконец, мы устанавливаем для Add для True, предполагая, что следующее число (третье число) нужно добавить. Опять же, это не обязательно так.

toAdd = True

8. Не забудьте замкнуть петлю.

Далее я

9. Поместите свой макрос в командную кнопку и протестируйте его.

Результат:

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave