|
▼kanabun さん:
>上をコードにすると、こんな風です。
>
>Sub Test更新1()
> Dim A As Worksheet, B As Worksheet
> Dim c As Range, r As Range
> Dim m
>
> Set A = Worksheets("SheetA")
> Set B = Worksheets("SheetB")
> Set r = B.Range("A2", B.Cells(B.Rows.Count, 1).End(xlUp))
> For Each c In A.Range("A2", _
> A.Cells(A.Rows.Count, 1).End(xlUp))
> m = Application.Match(c, r, 0)
> If IsNumeric(m) Then
> A.Rows(c.Row).Copy r(m) '既存データ更新(上書き)
> Else
> '新規データ追加
> A.Rows(c.Row).Copy _
> B.Cells(B.Rows.Count, 1).End(xlUp).Offset(1)
> End If
> Next
>End Sub
ありがとうございました。
思っていた通りの事ができました。
検証用に、
SheetAに1つの型番(X型番)で10件のデータを用意しました。
追加されたデータは、10×4(4倍)の40件がSheetBにコピーされています。
何故4倍なのか???
X型番はSheetBに10件(削除できていない)準備していましたので
50件になりました。
|
|