|
▼nameT さん:
こんにちは。
>Sheet1のB列とSheet2のB列を比較して(行は共に可変)
>Sheet1のB列にはないSheet2のB列のデータ
>(Sheet1のB列と重複していないSheet2のB列のデータ)
>をSheet3に表示させるためにはVBAではどのように
>書けば良いのでしょうか?
>下記のような結果を出したいのです。
>
>Sheet1
>A B C
>Code Group No.
>AAA MA1 888
>BBB MB1 888
>CCC MD2 888
>DDD MC1 888
>
>Sheet2
>A B C
>Code Group No.
>AAA MA1 888
>BBB MD1 888
>CCC ME2 888
>DDD MB1 888
>
>Sheet3
>A B C
>Code Group No.
>BBB MD1 888
>CCC ME2 888
>
>よろしくお願いします。
標準モジュールに
'========================================
Sub main()
Dim rng1 As Range
Dim rng2 As Range
With Worksheets("sheet1")
Set rng1 = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
End With
With Worksheets("sheet2")
Set rng2 = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
End With
If rng2.Row >= 2 Then
With Worksheets("sheet3")
.Range("a1:c1").Value = Array("Code", "Group", "No.")
If rng1.Row >= 2 Then
For Each rng In rng2
If IsError(Application.Match(rng.Offset(0, 1).Value, rng1.Offset(0, 1), 0)) Then
.Range("a" & idx + 2 & ":c" & idx + 2).Value = rng.Resize(, 3).Value
idx = idx + 1
End If
Next
Else
.Range(rng2.Resize(, 3).Address).Value = rng2.Resize(, 3).Value
End If
End With
End If
End Sub
これで試してみて下さい
|
|