У меня есть две таблицы: "составлен" и "первый пикап". То, что я хочу сделать, это удалить строки в листе "firstpickup", если значение в столбце A также можно найти в столбце A "compiled". "compiled" - это 42 000 строк, а "firstpickup" - 21 000, поэтому я хотел бы иметь возможность просто запустить макрос и завершить его после прохождения всех данных.
Вот несколько вариантов, которые я попробовал на основе краткого поиска Google:
Sub RemoveDuplicates()
Dim rCrit As Range 'Range To Search For Duplicates
Dim rFilt As Range 'Range To Remove Duplicates
Dim lLoop As Long
Set rCrit = Worksheets("compiled").Range("A1", Worksheets("compiled").Range("A" & Rows.Count).End(xlUp))
Set rFilt = Worksheets("firstpickup").Range("A1", Worksheets("firstpickup").Range("A" & Rows.Count).End(xlUp))
For lLoop = rCrit.Rows.Count To 2 Step -1
If WorksheetFunction.CountIf(rCrit, rFilt(lLoop).Value) > 0 Then
Worksheets("firstpickup").Rows(lLoop).Delete shift:=xlUp
End If
Next lLoop
End Sub
Эта подпрограмма не находила совпадений в функции "если", поэтому никогда не удаляла строки, даже для строк, которые, как я знал, имели дубликаты.
Sub Removeduplicates()
Dim Row As Long
Dim FoundDup As Range
Sheets("compiled").Select
For Row = Range("A24031").End(xlUp).Row To 2 Step -1
Set FoundDup = Sheets("compiled").Range("A:A").Find(Cells(Row, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not FoundDup Is Nothing Then
Cells(Row, 1).EntireRow.Delete
End If
Next Row
End Sub
Этот саб также не был успешным; после запроса "For" отладчик будет переходить к "end sub".
Буду очень признательна за любую помощь, либо переделку моих предыдущих попыток, либо помощь в поиске другого решения.