|
こんにちは。かみちゃん です。
>それで、これのちょっと違った形なのですが、
もしかして、初めから、そういう要件ではなかったのでしょうか?
もし、そうであれば、今後ご質問される場合は、最初からできるだけ要件を出していただいたほうがよろしいかと思います。
さて、すでに、ponponさんからコメントも出ていますが、OffsetとResizeを使わず
(Offsetは一箇所だけ使っていますが)値をCopyする方法ほ紹介しておきますので
参考にしてください。
Option Explicit
Sub test2()
Dim myRng As Range
Dim myRng2 As Range
Dim r As Range
With Worksheets("Sheet1")
'A2からA列の最下端のセルまでの範囲を処理する範囲とする。
Set myRng = .Range(.Range("A1"), .Cells(.Columns("A").Rows.Count, .Columns("A").Column).End(xlUp))
For Each r In myRng
'M列とN列のデータを比較し、異なる値の場合のみ処理をする。
If Cells(r.Row, .Columns("M").Column).Value <> Cells(r.Row, .Columns("N").Column).Value Then
Set myRng2 = Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0)
'品目コードと品目をコピー
.Range(.Cells(r.Row, .Columns("A").Column), .Cells(r.Row, .Columns("B").Column)).Copy Destination:=myRng2
'M列の値とN列の値をコピー
.Range(.Cells(r.Row, .Columns("M").Column), .Cells(r.Row, .Columns("N").Column)).Copy Destination:=myRng2.Offset(, 2)
End If
Next
End With
End Sub
あと、蛇足で、ponponさんには一度申し上げたことがあるのですが、掲示板中の引
用は、必要最小限のものでもよろしいかと思います。
ツリー表示で、一連の内容は、わかりますから。
|
|