別のワークシートで重複が見つかった場合に Excel ワークシートの行を削除する

別のワークシートで重複が見つかった場合に Excel ワークシートの行を削除する

「compiled」と「firstpickup」という 2 つのワークシートがあります。私がやりたいことは、列 A の値が「compiled」の列 A にも見つかる場合、「firstpickup」シートの行を削除することです。「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

このサブは「if」関数で一致するものを見つけられなかったため、重複があるとわかっている行であっても、行が削除されませんでした。

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」にスキップします。

以前の試みをやり直すか、別の解決策で私を助けてくれるか、どんな助けでも大歓迎です。

答え1

このVBAコードを使用すると、シートから行を削除するのに役立ちますFirstpickup列Aの値が列Aの値と一致する場合Complied Sheet

Sub DeleRows()
Dim LR As Long, i As Long
With Sheets("Firstpickup")
LR = .Range("A" & Rows.Count).End(xlUp).Row
For i = LR To 1 Step -1
    If IsNumeric(Application.Match(.Range("A" & i).Value, Sheets("Complied").Columns("A"), 0)) Then .Rows(i).Delete
Next i
End With
End Sub

関連情報