質問には、表題に「VBAで処理したい」ことをはっきり書くこと。
(マクロ実行後を見て始めてそれが判る。VLOOKUPなど出して関数の質問かと誤解する)
ーー
添付画像は、読者・回答者がテストで使えるよう、質問の中にデータを書いておいてほしい。回答の時再入力しないといけないのは、かなわない。
ーー
この質問も、回答者に全てのコードを書いてくれという、丸投げに近いな。
ーーー
これは両データをソートして、マッチングのアルゴリズムでやる問題だが、質問者には説明を要するので、初歩的な蚊mmが得やすいやり方でやってみた。
例データ 以下ーは空白セル(画面で左詰されないようにこの回答だけに入れた)
必要最小限の項目データにしている。多数でテストしてみてください。
Sheet1
ユーザー名 - 電話番号
a - 1
b - 2
c - 3
Sheet2
ユーザー名 - 電話番号 - 項目
c - 4 - x
b - 2 - y
d - 5 - z
e - 6 - w
ーー
コード ひょ順モジュールに
Sub test01()
Dim sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
Set sh3 = Worksheets("Sheet3")
'--
d1 = sh1.Range("a65536").End(xlUp).Row
d2 = sh2.Range("a65536").End(xlUp).Row
'MsgBox d1
'MsgBox d2
k = 2
'---
For i = 2 To d1
sh3.Cells(k, "A") = sh1.Cells(i, "A")
sh3.Cells(k, "C") = sh1.Cells(i, "C")
k = k + 1
For j = 2 To d2
If sh2.Cells(j, "J") = "" Then
If sh2.Cells(j, "A") = sh1.Cells(i, "A") Then
If sh2.Cells(j, "C") = sh1.Cells(i, "C") Then
sh2.Cells(j, "J") = "Y"
Else
sh3.Cells(k, "A") = sh2.Cells(j, "A")
sh3.Cells(k, "C") = sh2.Cells(j, "C")
sh3.Cells(k, "E") = sh2.Cells(j, "E")
k = k + 1
sh2.Cells(j, "J") = "Y"
End If
Else
End If
End If
Next j
Next i
'---
For j = 2 To d2
If sh2.Cells(j, "J") = "Y" Then
Else
sh3.Cells(k, "A") = sh2.Cells(j, "A")
sh3.Cells(k, "C") = sh2.Cells(j, "C")
sh3.Cells(k, "A") = sh2.Cells(j, "A")
sh3.Cells(k, "E") = sh2.Cells(j, "E")
k = k + 1
End If
Next j
End Sub
項目の代入は、手を抜いて、最小限にしてあるので、補ってください。
ーーー
Sheet3
ユーザー名 - 電話番号 - 項目
a - 1 -
b - 2 -
c - 3 -
c - 4 - x
d - 5 - z
e - 6 - w
お礼
御礼が遅れました。 いろいろご指摘、およびサンプルスクリプトありがとうございました。 いただいたものをいじって、現在ブック間でのデータ移動に成功してます。 ○投げhご指摘のとおりでお恥ずかしい限り、もっと精進してこちらで回答できるくらいまで勉強します。 ありがとうございました。