|
▼Wz さん:
>内容は、シート1と2のA〜E列にあるデータを比較し、A〜D列が一致しない行を
>シート3に書き出したいと思っています。
↑この質問と
>正確にはシート2にはあって、シート1に存在しない行を抽出したいのです。
>シート1の行は基本的には全てシート2には含まれています。
↑この質問とでは質問内容が全く違います!
Sub test()
Dim sh(1 To 3) As Worksheet
Dim i As Long, j As Long
Dim shd As Object
Dim tmp As String
For i = 1 To 3
Set sh(i) = Worksheets(i)
Next i
Set shd = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
For i = 1 To sh(1).Range("A65536").End(xlUp).Row
tmp = ""
For j = 1 To 4
tmp = tmp & sh(1).Cells(i, j).Value
Next j
shd.Add tmp, i
Next i
For i = 1 To sh(2).Range("A65536").End(xlUp).Row
tmp = ""
For j = 1 To 4
tmp = tmp & sh(2).Cells(i, j).Value
Next j
If shd.Exists(tmp) = False Then sh(3).Cells(i, 1).Resize(, 5).Value = sh(2).Cells(i, 1).Resize(, 5).Value
Next i
Application.ScreenUpdating = True
For i = 1 To 3
Set sh(i) = Nothing
Next i
Set shd = Nothing
End Sub
|
|