Сравнение столбцов и удаление дублей - VBA

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

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

Добрый вечер! Имеется excel файл напечатанного ниже формата:

Столбец "A"

- Имеющиеся артикула;

Столбец "B"

- Артикула которых возможно нет;

Столбцы "С и до конца"

- Дополнительная информация относящаяся к столбцу

"B"

. 1. Напишите пожалуйста макрос который проверит наличие одинаковых значений между ячейками

столбцов "A" и "B"

; 1.1. Если в ячейке

столбца "B"

, нашлось значение равное значению ячейки

столбца "A"

, - следует удалить строку

Столбца "B"

, - содержащую это повторяющееся значение. Пример файла во вложении, в нем представлена страница

"Исходник"

и страница

"Необходимый результат"

. Ниже печатаю пример, страницы исходник: 1. [A] Имеющиеся артикула [B] Артикула которых возможно нет [C] Дополнительная информация 1 [D] Дополнительная информация 2 [E] Дополнительная информация 3 2. [A] 111 [B] 111 [C] [D] [E] 555 3. [A] 222 [B] 222 [C] 2 [D] [E] 4. [A] 444 [B] 333 [C] 678 [D] [E] 5. [A] 555 [B] 666 [C] [D] [E] 6. [A] 666 [B] 999 [C] [D] [E] 991 Ниже печатаю пример, страницы необходимый результат: 1. [A] Имеющиеся артикула [B] Артикула которых возможно нет [C] Дополнительная информация 1 [D] Дополнительная информация 2 [E] Дополнительная информация 3 4. [A] 444 [B] 333 [C] 678 [D] [E] 6. [A] 666 [B] 999 [C] [D] [E] 991

Решение задачи: «Сравнение столбцов и удаление дублей»

textual
Листинг программы
  1. Sub DelReplyA()
  2.     Dim c&(), rn As Range
  3.     With ActiveSheet
  4.         a = .UsedRange.Columns(1)
  5.         b = .UsedRange.Columns(2)
  6.         k = .UsedRange.Columns.Count + 1
  7.     End With
  8.     ReDim c(1 To UBound(b, 1), 1 To 1)
  9.     With CreateObject("Scripting.Dictionary")
  10.         For i = 2 To UBound(a)
  11.             .Item(a(i, 1)) = i
  12.         Next
  13.         For i = 2 To UBound(b)
  14.             If .exists(b(i, 1)) Then c(i, 1) = 1
  15.         Next
  16.     End With
  17.     Cells(1, k).Resize(UBound(c), 1) = c
  18.     Set rn = Range(Cells(1, k), Cells(1, k))
  19.     Columns(k).ColumnDifferences(rn).EntireRow.Delete
  20.     Columns(k).Delete
  21. End Sub

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


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

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы