Как быстро удалить дубликаты между двумя листами Excel VBA

Я использую VBA и у меня есть два листа один называетсяНе звони" и содержит около 800 000 строк данных в столбце А. Я хочу использовать эти данные для проверки столбца I на втором листе с именем "Лист1", Если он найдет совпадение, я хочу удалить всю строку вЛист1", Я адаптировал код, который я нашел из аналогичного вопроса здесь:Формула Excel для перекрестной ссылки 2 листа, удаления дубликатов с одного листа и запустил его, но ничего не происходит. Я не получаю никаких ошибок, но он не работает.

Вот код, который я сейчас пытаюсь и не знаю, почему он не работает

Option Explicit
Sub CleanDupes()
Dim wsA As Worksheet
Dim wsB As Worksheet
Dim keyColA As String

Dim keyColB As String
Dim rngA As Range
Dim rngB As Range
Dim intRowCounterA As Integer
Dim intRowCounterB As Integer
Dim strValueA As String


keyColA = "A"
keyColB = "I"

intRowCounterA = 1
intRowCounterB = 1

Set wsA = Worksheets("Do Not Call")
Set wsB = Worksheets("Sheet1")

Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)
    Set rngA = wsA.Range(keyColA & intRowCounterA)
    strValueA = rngA.Value
    If Not dict.Exists(strValueA) Then
        dict.Add strValueA, 1
    End If
    intRowCounterA = intRowCounterA + 1
Loop

intRowCounterB = 1
Do While Not IsEmpty(wsB.Range(keyColB & intRowCounterB).Value)
    Set rngB = wsB.Range(keyColB & intRowCounterB)
    If dict.Exists(rngB.Value) Then
         wsB.Rows(intRowCounterB).delete
         intRowCounterB = intRowCounterB - 1
    End If
    intRowCounterB = intRowCounterB + 1
Loop
End Sub

Я прошу прощения, если вышеупомянутый код не находится в теге кода. Я впервые публикую код в Интернете, и я понятия не имею, правильно ли я это сделал.

Ответы на вопрос(2)

Ваш ответ на вопрос