こんばんは。
ご質問のデータの位置関係が今ひとつ分からないけれども、数がいくらあっても、関数のCountIf と、オートフィルタを組み合わせて使えば、あまりマクロという手段にこだわらなくてもよいと思います。こういうアイデアを元にマクロを組み立てれば簡単に出来ます。
'-------------------------------------------
Sub Test1()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim r1 As Range
Dim r2 As Range
Dim i As Long
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
With sh1 'シート1 のデータ
Set r1 = .Range("D1", .Range("D65536").End(xlUp))
End With
With sh2 'シート2 のデータ
Set r2 = .Range("E1", .Range("E65536").End(xlUp))
End With
With sh1
With r1
'E列に数式の貼り付け
.Offset(, 1).Formula = "=COUNTIF(" & sh2.Name & "!" & r2.Address(, , xlR1C1) & ",RC[-1])"
.Offset(, 1).Value = .Offset(, 1).Value
End With
'オートフィルタ用のヘッダ付け
.Rows(1).Insert
For i = 1 To 5 'E列まで
.Cells(1, i).Value = Chr(64 + i)
Next i
'オートフィルタ 重複の取り出し
r1.CurrentRegion.AutoFilter Field:=5, Criteria1:=">0"
'不要行の削除
Application.DisplayAlerts = False
.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'オートフィルタの解除
.AutoFilterMode = False
'抽出カウントの削除
r1.Columns(2).ClearContents
End With
End Sub