Поиск дубликатов в двух массивах с последующим удалением их из виртуального массива - VBA
Формулировка задачи:
На одном листе есть две таблицы разделенные несколькими строками - это и есть 2 массива. Нужно проверить дублирующиеся значения между ними, но есть сложность - иногда одно и тоже значение повторяется в одном массиве из-за чего иногда некорректно отображаются данные. Хотелось бы создать код, который может избежать этой ошибки. Как я представляю процесс: берется значение из массива №1 и сравнивается со значениями из массива №2; при нахождении повтора эти два значения исключаются из сравнения(если есть такое же значение в массиве №1, то при сравнении уже не будет в массиве №2 такого же);если дубликатов нет, то строка со значением переносится на отдельный лист.
При этом хотелось бы чтобы все эти вычисления были виртуальными, никак не изменяя реальный документ.
Это вообще возможно?
Пока создала только такой код
...и дальше я не знаю что вставить
Решение задачи: «Поиск дубликатов в двух массивах с последующим удалением их из виртуального массива»
textual
Листинг программы
Option Explicit Sub tt() Dim a, b, i&, ii&, lr&, t$, col As New Collection With Sheets(1) lr = .Cells(.Rows.Count, 2).End(xlUp).Row a = .[a1].CurrentRegion.Columns(2).Value b = .Cells(lr, "A").CurrentRegion.Columns(2).Value On Error Resume Next For i = 1 To UBound(b) t = b(i, 1): col.Add t, t Next Err.Clear For i = 1 To UBound(a) t = a(i, 1): col.Add t, t If Err = 0 Then ii = ii + 1: .Rows(i).Copy Sheets(2).Cells(ii, 1) Else Err.Clear End If Next End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д