Prueba esta macro, primero eliminara los repetidos por columna y luego analizara cada fila para eliminar repetidos, en 300,000 registros tarda 13 segundos en un equipo antiguo para la cantidad de registros que manejas debe andar entre los 7 y 10 minutos el proceso.
Dim unicos As New Collection
Set datos = Range("b2").CurrentRegion
Set funcion = WorksheetFunction
With datos
filas = .Rows.Count
´elimina informacion repetida en cada columna
.RemoveDuplicates Columns:=Array(1)
.RemoveDuplicates Columns:=Array(2)
.RemoveDuplicates Columns:=Array(3)
.RemoveDuplicates Columns:=Array(4)
filas2 = .CurrentRegion.Rows.Count
filasu = filas - filas2
'busca los repetidos en cada fila, los marca y los borra
Set datos = .CurrentRegion
Set tabla = .Columns(.Columns.Count + 1).Resize(.Rows.Count, 1)
matriz = tabla
For i = 1 To filas2
Set unicos = Nothing: x = 0
For j = 1 To .Columns.Count
numero = .Cells(i, j)
On Error Resume Next
unicos.Add numero, CStr(numero)
If Err.Number > 0 Then x = x + 1
On Error GoTo 0
Next j
matriz(i, 1) = x
Next i
Range(tabla.Address) = matriz
Set datos = .CurrentRegion
.Sort key1:=Range(.Columns(.Columns.Count).Address), order1:=xlAscending
cuenta = funcion.CountIf(.Columns(.Columns.Count), 0)
filas = .CurrentRegion.Rows.Count - cuenta
.Rows(cuenta + 1).Resize(filas, .Columns.Count).Clear
End With
fin = Timer()
tiempo = fin - inicio
MsgBox ("terminado en " & tiempo & " segundos")
End Sub
Hola James acabo de enviar las fotos que necesitas - sandra valer