Поиск дубликатов в двух массивах с последующим удалением их из виртуального массива - 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

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


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

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

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