プロが教えるわが家の防犯対策術!

いつもお世話になっております。
この度、ExcelVBAで複数指定範囲を別シートに貼り付ける構文のご教示をいただきたく質問させていただきました。

処理の内容としましては(D12セル)から【最終行まで】)+(Y12セル)から【最終行まで】)+(P12セル)から【最終行まで】)を【決算表】という別シート(A3セル)に貼り付けたい内容となります。
ここで注意点がございまして1セルだけの場合の処理時にフリーズしない様、A12セルにデータが入っている場合に限り処理を行いたく、ご教示の程よろしくお願い致します。

A 回答 (2件)

#1です


こんな感じかな
書き方色々あるのですが コピー方向が分からなかったので
改修しやすい(私的に)書き方で

Sub 右方向()
Dim n As Integer, r As Range
With Worksheets("管理表")
For Each r In .Range("D12,Y12,P12")
If .Range("A12") <> "" Then
.Range(r, .Cells(Rows.Count, r.Column).End(xlUp)).Copy _
Worksheets("決算表").Range("A3").Offset(, n)
n = n + 1
End If
Next
End With
End Sub


Sub 下方向()
Dim n As Integer, r As Range
With Worksheets("管理表")
For Each r In .Range("D12,Y12,P12")
If .Range("A12") <> "" Then
.Range(r, .Cells(Rows.Count, r.Column).End(xlUp)).Copy _
Worksheets("決算表").Cells(Rows.Count, "A").End(xlUp).Offset(1)
End If
Next
End With
End Sub
    • good
    • 0
この回答へのお礼

Qchan1962様、VBAの構築ありがとうございます。
私のコピー方向先の説明不足に両方作成していただきありがとうございます。
右方向の処理が私が求めていた動きとなりました。
大事に活用させていただきます。
この度はありがとうございました。

お礼日時:2022/05/27 20:15

こんばんは


VBAを実行するにあたり不明な点がいくつかあります・・

①シートに貼り付ける
書式や数式すべて?それとも値?

②+
行方向?列方向?

③列 D Y P の順番と言う事?

④A12セル
どのシート?

⑤コピー元シート名は?
    • good
    • 0
この回答へのお礼

Qchan1962様、回答ありがとうございます。

下記内容の補足をさせていただきます。
①書式と罫線含め全て貼り付け。
②こちらの+はそれぞれのセルの下記データ末尾までとなりますのでD12、Y12、P12セルより下方向の末尾までの説明となります。
③D、Y、Pの順番で合っております。
④貼り付け元のシート名は【管理表】。
⑤貼り付け先のシート名は【決算表】という名のシートになっております。

説明が足りず申し訳ございません。
よろしくお願いいたします。

お礼日時:2022/05/27 00:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング