前提・実現したいこと
VBA初心者です。
データベースを随時更新していくコードを作っています。
過去データSheet1に最新データSheet2からデータを追記していくものを想定しています。
Sheet1の情報がSheet2に存在するかを検索し、存在しない場合に新しいデータと見做し、
シート間で差異データをSheet2からSheet1へ転記したいのですが、
該当する行が複数ある場合に、一行しか転記しない状況です。
例(A列1行から10行が同じデータの場合、1行目しか転記しない)
これをすべて転記するにはどうしたらいいでしょうか。
よろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Sub 検索転記()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
R1 = sh1.Cells(sh1.Rows.Count, "A").End(xlUp).Row
R2 = sh2.Cells(sh2.Rows.Count, "A").End(xlUp).Row
n = R1 + 1
For i = 1 To R2
Set x = sh1.Columns("A").Find(What:=sh2.Cells(i, "A"), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If x Is Nothing Then
sh1.Cells(n, "A") = sh2.Cells(i, "A")
sh1.Cells(n, "B") = sh2.Cells(i, "B")
n = n + 1
End If
Next i
End Sub
試したこと
検索条件を2つに設定してもれなく、だぶりなくデータを更新するように試みたのですがうまくいきません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー