Excel VBA 質問スレッド No.93 (解決済)

シート間の列のコピー

投稿者 : ゆうな     投稿日時 : 2020/07/29(Wed) 23:00:35     OS : Windows 10     EXCEL : Excel 2013
Sub シート間の転記() 
 Dim lastrow As Long
lastrow = Sheets("まとめ").Range("F" & Rows.Count).End(xlUp).Row

Sheets("まとめ").Range("F" & lastrow).Value = Sheets("10").Range("F2", Cells(Rows.Count, "F").End(xlUp)).Value
lastrow = lastrow + 1

End Sub


上記のように10シートのF2から同列の空白行までのデータをまとめシートに転記したくマクロ
を作成しました。
ですが「アプリケーション定義またはオブジェクト定義のエラーです。」と出ます。
何度も作り直していますが分かりません。何が悪いのかご教授お願いいたします。

[返信 1] Re : シート間の列のコピー
投稿者 : むぎ     投稿日時 : 2020/07/30(Thu) 09:43:34
Excel2019で投稿されたマクロを動かしてみましたが、特にエラーにはなりませんでした。

エラーの話は置いとくとして、いくつかアドバイスします。

まず、End(xlUp).Row は最終行を取得することはご存じだと思いますが、

このままでは、最終行が上書きされてしまいますので、コピーする前に +1 してください。

あと、コピー元とコピー先の範囲があってないのでそれは合わせてください。

修正後サンプル載せておきます。


Sub シート間の転記_修正サンプル()
Dim lastrow As Long
lastrow = Sheets("まとめ").Range("F" & Rows.Count).End(xlUp).Row

' コピー元セル範囲の取得
Dim src As Range
Set src = Sheets("10").Range("F2", Sheets("10").Cells(Rows.Count, "F").End(xlUp).Address)

' コピー処理
Sheets("まとめ").Range("F" & (lastrow + 1), "F" & (lastrow + src.Rows.Count)).Value = src.Value
End Sub

[返信 2] Re : シート間の列のコピー
投稿者 : ゆうな     投稿日時 : 2020/07/30(Thu) 22:22:17
むぎ様ありがとうございます。
エラーのほうは別のシートがあったからのようです。

自分で作ったVBAと修正して頂いたVBA見比べて勉強いたします。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2020-08-10 16:58:28 )

Page
Top