Excel Макрос массового удаления дубликатов в одном столбце в череде многих - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день, вчера весь день искал себе подходящий способ решения своей задачи, но так и не нашел подходящий. Прошу Вас помочь мне. В приложенном Excel файле 2 таблицы: Левая - исходные данные Правая - какой должен получиться результат Задача - сразу в нескольких колонках, удалить все дубликаты находящиеся только в одном столбце. То есть если в одном столбце дважды (или несколько раз) попадается цифра "4" - то именно в этом столбце должна остаться только одна цифра "4". Например: У нас в одном столбце восемь цифр: 1 2 3 4 1 2 3 4 Мы видим, что здесь последние четыре цифры 1 2 3 4 - дублируются, то есть на выходе должны остаться только первые четыре цифры 1 2 3 4 Я нашел пару макросов, как удалить дубликаты во всех столбцах, а не только в одном - и это не подходит. Например: У нас есть два столбца: 1....5 2....6 3....5 4....6 1....1 2....2 3....3 4....4 То есть, на выходе должно получиться: 1.....5 2.....6 3.....1 4.....2 .......3 .......4 То есть, в первом столбце были удалены дублирующиеся последние четыре цифры (1 2 3 4), а во втором столбце дублирующиеся вторая и третья цифры (5 6). Вот тут важно то, что во втором столбце последние цифры 1 2 3 4 - не дубликаты потому, что во втором столбце нет повторяющихся цифр 1 2 3 4. Во втором столбце дублируются лишь 5 и 6. А мои макросы оказывается удаляют дубликаты не в отдельном одном столбце из всей массы столбцов, а во всех столбцах сразу - виртуально объединив их в один. Где в результате из нашего примера получается следующее: 1....5 2....6 3 4 Хотя, мне не нужно было, чтобы макрос удалял во втором столбце последние четыре цифры 1 2 3 4.

Решение задачи: «Excel Макрос массового удаления дубликатов в одном столбце в череде многих»

textual
Листинг программы
Private Sub Test()
     Application.ScreenUpdating = False
     With ActiveSheet.UsedRange
          For iColumn& = .Columns.Count To 1 Step -1
              .Columns(iColumn&).RemoveDuplicates 1, xlNo
          Next
     End With
     Application.ScreenUpdating = True
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы