マクロの初心者です。Dim で宣言してやりたいと思っています。
既存のExcelの機能で出来ないことはないと思いますが、敢えて、マクロででないか。
やってみたいと思っています。
やりたいこと等について
1 sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。
2 その時に最終行を取得してコピーをするとしたら、どんなコードが必要なのか
3 最終行の取得のコードの書き方が分からない
4 ネットで下記のような(一部変更)に作ってみたが、これで良いのでしょうか、わからない。
以上のことを答えて頂けませんか。よろしくお願いします。
Sub テスト()
Dim range1 As Range
Set range1 = Range("E2:J1109")
range1.Copy
ActiveSheet.Paste Destination:=("sheet1").Range("E2:J1109")
ActiveSheet.Paste Destination:=("sheet2").Range("E3:J1110")
Application.CutCopyMode = False
End Sub
>sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。
Sub Test01()
Sheets("Sheet1").Range("E2:J1109").Copy Sheets("Sheet2").Range("E3")
Application.CutCopyMode = False
End Sub
>最終行の取得のコードの書き方が分からない
Sheet2のE列の最終行の次の行に貼り付けるのなら
Sub Test02()
Dim LastRow As Long
'Sheet2のE列の最終行を取得
LastRow = Sheets("Sheet2").Cells(Rows.Count, "E").End(xlUp).Row + 1
Sheets("Sheet1").Range("E2:J1109").Copy Sheets("Sheet2").Cells(LastRow, "E")
Application.CutCopyMode = False
End Sub
> sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。
Sub Test03()
Sheets("Sheet1").Range("E2:J1109").Copy
Sheets("sheet2").Range("E3").PasteSpecial
Application.CutCopyMode = False
End Sub
Sheet2の最終行に貼り付け
Sub Test04()
Sheets("Sheet1").Range("E2:J1109").Copy
Sheets("sheet2").Cells(Rows.Count, "E").End(xlUp).Offset(1).PasteSpecial
Application.CutCopyMode = False
End Sub
コピーではなく値だけを転記
Sub Test05()
Sheets("Sheet2").Range("E3:J1110").Value = Sheets("Sheet1").Range("E2:J1109").Value
End Sub
>sheet1のE2:J1109のところも最終行をとるようにすることは、おかしいことなのでしようか。
おかしくはないでしょう、普通、最終行は決まっていない方が多いでしょう
Sub Test6()
'Sheet1のE2から最終行までをコピー
With Sheets("Sheet1")
.Range("E2:J" & .Cells(Rows.Count, "E").End(xlUp).Row).Copy
End With
'Sheet2のE列の最終行の次の行に貼付け
Sheets("Sheet2").Cells(Rows.Count, "E").End(xlUp).Offset(1).PasteSpecial
Application.CutCopyMode = False
End Sub
お礼
お礼のコメントの位置を間違えました。すみません。ありがとうございました。勉強になりました。今後もよろしくお願いします。 最終行のこと、なるぼど決まっていない方が多いですね。わかりました。
補足
ありがとうございます。これでできましてが、もう一つ質問させて頂いてもよろしいですか。すみません、sheet1のE2:J1109のところも最終行をとるようにすることは、おかしいことなのでしようか。よくわかっていないのですが、お教え頂けませんか。