¿Cómo elimino duplicados entre dos hojas de Excel rápidamente vba
Estoy usando vba y tengo dos hojas, una se llama "No llamar" y tiene aproximadamente 800,000 filas de datos en la columna A. Quiero usar estos datos para verificar la columna I en la segunda hoja, llamada "Hoja1". Si encuentra una coincidencia, quiero que elimine toda la fila en "Hoja1". He adaptado el código que he encontrado de una pregunta similar aquí:Fórmula de Excel para referencias cruzadas de 2 hojas, eliminar duplicados de una hoja Y lo corrió pero no pasa nada. No estoy recibiendo ningún error pero no está funcionando.
Aquí está el código que estoy intentando actualmente y no tengo idea de por qué no funciona
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
Pido disculpas si el código anterior no está en una etiqueta de código. Esta es la primera vez que publico el código en línea y no tengo idea si lo hice correctamente.