|
▼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の方は、型番が複数存在するイメージで
書いてしまってました。
今の所、同じ型番が複数行になる見込みだそうです。
(すみません。先程わかりました)
|
|