| 
    
     |  | ▼kanabun さん: >▼MARUMO さん:
 >
 >前のと同じですが、追加先セル変数を1つ増やして、記述を簡単に
 >しました。
 >
 >Sub Test更新2()
 >  Dim A As Worksheet, B As Worksheet
 >  Dim c As Range, r As Range, q As Range
 >  Dim m
 >
 >  Set A = Worksheets("SheetA")
 >  Set B = Worksheets("SheetB")
 >  Set q = B.Cells(B.Rows.Count, 1).End(xlUp) '[B]A列最終セル
 >  Set r = B.Range("A2", q)
 >  For Each c In A.Range("A2", _
 >             A.Cells(A.Rows.Count, 1).End(xlUp))
 >    m = Application.Match(c, r, 0) 'SheetB にあるか?
 >    If IsNumeric(m) Then
 >      A.Rows(c.Row).Copy r(m)  '既存データ更新(上書き)
 >    Else
 >      Set q = q.Offset(1)
 >      A.Rows(c.Row).Copy q   '新規データ追加
 >    End If
 >  Next
 >End Sub
 
 ありがとうございました。
 思っていた通りの事ができました。
 検証用に、
 SheetAに1つの型番(X型番)で10件のデータを用意しました。
 追加されたデータは、10×4(4倍)の40件がSheetBにコピーされています。
 何故4倍なのか???
 X型番はSheetBに10件(削除できていない)準備していましたので
 50件になりました。
 
 同じ型番が2件(行)以上存在する事もありますので
 SheetAに2行あれば、SheetBが1行だったとしても
 SheetAに2行と置き換えしたいです。
 
 SheetAの方は、型番が複数存在するイメージで
 書いてしまってました。
 今の所、同じ型番が複数行になる見込みだそうです。
 (すみません。先程わかりました)
 
 
 |  |