
ExcelVBAで別シートへ転記するコードで空白行へ転記するコードわかりません。
・転記元シートは4つ
・転記先は1つ
・転記元の指定セルを指定し転記
・転記元ごとにボタンで処理
・各転記元のボタンで入力済行以下に追加転記
このような作動にしたいのです。
現在、シートからの通常の転記は以下のコードで作動しております。
-------------------------------
Sub チェックシート転記()
'①シートを変数にセット
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("転記元")
Set ws2 = Worksheets("転記先")
'②シートを指定してデータを転記
ws2.Range("B11:C26").Value = ws1.Range("A10:B25").Value
ws2.Range("B11:C26").Value = ws1.Range("A10:B25").Value
ws2.Range("D11:D26").Value = ws1.Range("D10:D25").Value
ws2.Range("E11:E26").Value = ws1.Range("F10:F25").Value
ws2.Range("F11:F26").Value = ws1.Range("H10:H25").Value
ws2.Range("G11:G26").Value = ws1.Range("I10:I25").Value
End Sub
-------------------------------
よろしくお願いします。

No.1ベストアンサー
- 回答日時:
最終行の取得 と
貼り付け先セル番号への組み込み について知りたい
という感じでしょうか?
情報が記入される際に空欄にならない列を基準に最終行を取得しましょう。
ここでは「B列」を用いてみます。
x = ws2.Range("B10").End(xlDown).Row
これは、ws2.Range("B10") 連続した入力セルの最下端の行を取得します。
ws2.Range("B10")を選択した状態で、[CTRL]+[↓]で移動した先のセルの行(Row)、と言えばわかりやすいでしょうか。
で、B11以降にデータが存在していればその最終行を取得しますが、
まっさらな状態(B10の項目しかない状態)であれば、
連続したデータがなく、シートの最下行を取得しちゃうんですね。
(先に書いた [CTRL]+[↓] をやってみればわかります)
なので・・・
x = ws2.Range("B10").End(xlDown).Row
If x = Rows.Count Then x = 11 Else x = x + 1
最終行=シートの最終行であれば、貼り付け位置は11行目。
そうでなければ、貼り付け位置は、[データ連続の最終行+1]行目
という処理を入れています。
下記は、貼り付け方法もちょっと変えてみたのですが、
これではいかがでしょうか?
Sub チェックシート転記1()
'①シートを変数にセット
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("転記元")
Set ws2 = Worksheets("転記先")
’ws2の貼り付け位置
x = ws2.Range("B10").End(xlDown).Row
If x = Rows.Count Then x = 11 Else x = x + 1
'②シートを指定してデータを転記
ws1.Range("A10:B25").Copy ws2.Range("B" & x)
ws1.Range("D10:D25").Copy ws2.Range("D" & x)
ws1.Range("F10:F25").Copy ws2.Range("E" & x)
ws1.Range("H10:H25").Copy ws2.Range("F" & x)
ws1.Range("I10:I25").Copy ws2.Range("G" & x)
End Sub
オリジナルに合わせれば、貼り付けはこうですね。
'②シートを指定してデータを転記
ws2.Range("B" & x & ":C" & x+15).Value = ws1.Range("A10:B25").Value
ws2.Range("D" & x & ":D" & x+15).Value = ws1.Range("D10:D25").Value
ws2.Range("E" & x & ":E" & x+15).Value = ws1.Range("F10:F25").Value
ws2.Range("F" & x & ":F" & x+15).Value = ws1.Range("H10:H25").Value
ws2.Range("G" & x & ":G" & x+15).Value = ws1.Range("I10:I25").Value
早々の回答ありがとうございました。
オリジナルのコードで思った通りの作動となりました。
大変、勉強になり感謝致します。
改めましてありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) VBA別シートの最終行の次行へ転記したい。 3 2022/06/01 17:54
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCEL VBA マクロ 別シートの空白行へのコピー
その他(Microsoft Office)
-
エクセル マクロ 貼り付け先が空白でない場合 1行下に貼りつける
Excel(エクセル)
-
エクセルの空白セルへコピーするマクロをくむ方法
Excel(エクセル)
-
-
4
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
5
マクロで空白セルを詰めて別シートに転記
Visual Basic(VBA)
-
6
vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002
Visual Basic(VBA)
-
7
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
8
excel2010 空白セルにのみ貼り付けたい
Excel(エクセル)
-
9
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
10
空白セルをとばして転記
Visual Basic(VBA)
-
11
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
12
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
13
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
14
【Excel】【VBA】空白のセルに上のデータを入力する方法
その他(Microsoft Office)
-
15
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
16
別ブックの空白行に転記
その他(Microsoft Office)
-
17
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
-
18
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
19
エクセルVBAでコピーして順番に張り付けをしたい!
Visual Basic(VBA)
-
20
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 空白行に転記する
-
まとめシートから集計シートへA...
-
EXCELのSheet番号って変更でき...
-
楽天RSSからエクセルVBAを使用...
-
VBA データ抽出 速度改善
-
エクセルVBAについて教えて...
-
VBA 実行時エラー1004 rangeメ...
-
テキストボックスから、複数の...
-
Count Ifのセルの範囲指定に変...
-
ExcelのVBAでグループ分けしたい
-
マクロ実行後に別シートの残像...
-
マクロの「SaveAs」でエラーが...
-
複数シートの複数列に入力され...
-
チェックボックスをクリックし...
-
エクセルで複数のシートのクリ...
-
「段」と「行」の違いがよくわ...
-
【マクロ】実行時エラー '424':...
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Excel UserForm の表示位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELのSheet番号って変更でき...
-
マクロの「SaveAs」でエラーが...
-
マクロ実行後に別シートの残像...
-
VBA 空白行に転記する
-
VBA別シートの最終行の次行へ転...
-
Count Ifのセルの範囲指定に変...
-
【VBA】データを各シートに自動...
-
Changeイベントで複数セルへの...
-
VBAで変数の数/変数名を動的に...
-
VBA 別ブックからの転記の高速...
-
Excel VBA オートフィルターで...
-
【VBA】特定の条件でセルをコピー
-
VBAでEXCELから固定長...
-
Excel2013で切り取り禁止
-
Unionでの他のシートの参照につ...
-
楽天RSSからエクセルVBAを使用...
-
100万件越えCSVから条件を満た...
-
ExcelのVBマクロを、バックグラ...
-
VBA 実行時エラー1004 rangeメ...
-
同じ作業(データコピー・貼付...
おすすめ情報