2つのワークシートがあり、もとのワークシートをコピーしたワークシート上で値を変更しました。
その変更した値だけをもとのワークシートへ反映させる方法です。
目次
変更したい内容
ワークシートは2つです。
- sheet1:もとのデータ
- sheet2:sheet1をコピーして値変更したデータ

sheet1
データの変更をする項目はD列の金額です。

sheet2
変更した個所はB列の野菜の金額です。変更した個所だけ黄色にしています。
変更していないデータは金額が空欄です。

マクロ実行後
赤い枠の金額のみ更新されました。

サンプルデデータ
2つの方法です。いづれも基本的な内容です。
単純に2つのワークシートを比較する方法です。
Sub sample1()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
Dim i As Long
For i = 2 To 6
If ws1.Cells(i, 2).Value = "野菜" And ws1.Cells(i, 1).Value = ws2.Cells(i, 1) Then
ws1.Cells(i, 4).Value = ws2.Cells(i, 4).Value
End If
Next i
End Sub
変更した値「sheet1」を配列に格納する例です。
Sub sample2()
Dim ary() As Variant
ary = Sheet2.Range("A1").CurrentRegion
Dim i As Long
For i = 2 To 6
If Cells(i, 2).Value = "野菜" And Cells(i, 1).Value = ary(i, 1) Then
Cells(i, 4).Value = ary(i, 4)
End If
Next i
End Sub
