ExcelのVBAでコピーのやり方
シート1のAL列の3行目以降の中から0以外の
値が入っているAJ列~AN列の行を全てコピーして、
シート2のB列~F列に貼り付けたいです。
シート2のB列~F列の7行目から下にコピーした値を入れていきたく、
値が入っていたらその次の行に貼り付けたいです。
例えば、7行目~15行目まで値が入っていたら、16行目から貼り付けるようにしたいです。↓のように書いてみたのですが、
コピーしている状態になるだけで、シート2の方へ貼り付けができない状態です。
また、オブジェクトが必要ですと表示が出ます。
どこをどうなおしたらいいでしょうか。
文章がわかりにくく申し訳ありません。
回答よろしくお願いいたします。
sub 値をコピー()
Dim rTargetRange As Range, ii As Long
Set rTargetRange = Nothing
For ii = 4 To Cells(Rows.CountLarge, "AL").End(xlUp).Row
If (Cells(ii, "AL").Value <> 0) Then
If (rTargetRange Is Nothing) Then
Set rTargetRange = Cells(ii, "AJ").Resize(, 5)
Else
Set rTargetRange = Application.Union(rTargetRange, Cells(ii, "AJ").Resize(, 5))
End If
End If
Next
With Worksheets("sheet2")
With .Cells(.Rows.CountLarge, "B").End(xlUp)
If (.Row = 1 And .Value = "") Then
rTargetRange.Copy .Offset(0)
Else
rTargetRange.Copy .Offset(1)
End If
End With
End With
End Sub
また、↓のような違ったコードも試しましたが、
うまくいきませんでした。
N=Sheet2.Cells(Rows.CountLarge, "AL").End(xlUp).Row+1
SHEET1.SELECT
For ii = 4 To Cells(Rows.CountLarge, "AL").End(xlUp).Row
If Cells(ii, "AL").Valu e <> 0 Then
RANGE("AJ" & ii & ":AN" & ii).COPY SHEET2.RANGE("B" & N)
N=N+1
END IF
NEXT
お礼
BLUEPIXY さま早速のご回答ありがとうございます。 すいません。あせって質問してしまい、原因がわかりました。 図のプロパティをいじってしまっていました。 すいません。お騒がせしました。 以後気をつけます。