ここから本文です

vbaマクロの件で質問です。 シート1のC3~K500にデータが入ってます、これをシー...

sap********さん

2018/7/1722:30:27

vbaマクロの件で質問です。
シート1のC3~K500にデータが入ってます、これをシート2の空白行から張り付けしたいのですが、みなさんお力をお貸しください。
※シート2には元から値が入っており

、空白行から追記したいです。

補足シート2のCからになります。

閲覧数:
30
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2018/7/1800:38:21

>シート2のCからになります。
Sheet2のC列最終行下に貼り付けるんですよね?
1行のコードで済ましちゃいけないんですか?

Sub sample()
Worksheets("Sheet1").Range("C3:K500").Copy Worksheets("Sheet2").Cells(Rows.Count, 3).End(xlUp).Offset(1)
End Sub

質問した人からのコメント

2018/7/19 08:15:35

ありがとうございます

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

youjieさん

2018/7/1723:22:08

ご質問の内容だと、
シート2のどの列から転記すればいいのかわからないので、

シート2の "C列の最後の行から" を転記先として、

シート2のC~K列に転記するマクロを作りました。

Sub Tenki()
Dim count As Long
Dim lrow As Long
lrow = Sheets(1).Range("K" & Rows.count).End(xlUp).Row
Dim Arr() As String
ReDim Arr(8, lrow)
For count = 3 To lrow
Arr(0, count - 3) = Sheets(1).Range("C" & count)
Arr(1, count - 3) = Sheets(1).Range("D" & count)
Arr(2, count - 3) = Sheets(1).Range("E" & count)
Arr(3, count - 3) = Sheets(1).Range("F" & count)
Arr(4, count - 3) = Sheets(1).Range("G" & count)
Arr(5, count - 3) = Sheets(1).Range("H" & count)
Arr(6, count - 3) = Sheets(1).Range("I" & count)
Arr(7, count - 3) = Sheets(1).Range("J" & count)
Arr(8, count - 3) = Sheets(1).Range("K" & count)
Next
lrow = Sheets(2).Range("C" & Rows.count).End(xlUp).Row + 1
For count = LBound(Arr, 1) To UBound(Arr, 2)
Sheets(2).Range("C" & lrow).Value = Arr(0, count)
Sheets(2).Range("D" & lrow).Value = Arr(1, count)
Sheets(2).Range("E" & lrow).Value = Arr(2, count)
Sheets(2).Range("F" & lrow).Value = Arr(3, count)
Sheets(2).Range("G" & lrow).Value = Arr(4, count)
Sheets(2).Range("H" & lrow).Value = Arr(5, count)
Sheets(2).Range("I" & lrow).Value = Arr(6, count)
Sheets(2).Range("J" & lrow).Value = Arr(7, count)
Sheets(2).Range("K" & lrow).Value = Arr(8, count)
lrow = lrow + 1
Next
End Sub

具体的に表をみてつくったわけではないので自信はありませんが、いかがでしょう。

ちなみにブログもやってます。
ご質問等あれば気軽にコメントください♪
http://kimama-vba.com

tam********さん

2018/7/1723:06:44

こんばんは。

出来るだけ、処理が読みやすいように書いてみました。

Sub Test()
``Dim refSht As Worksheet '参照するシート
````Set refSht = Worksheets("Sheet1")
``Dim refRng As Range '参照する範囲
````Set refRng = refSht.Range("C3:K500")

``Dim writeSht As Worksheet '書き出す(貼り付ける)シート
````Set writeSht = Worksheets("Sheet2")
``Dim writeCell As Range '書き出すセル
````Set writeCell = writeSht.Range("C3").End(xlDown) 'データの始まるセルから下に移動して、最後のデータがあるセルを取得
````Set writeCell = writeCell.Offset(1, 0) '一行分下にずらす

``refRng.Copy writeCell '参照範囲のセルを、書き出しセルに貼り付け
End Sub
※バッククォート「`」は半角空白「 」に置換ください

処理の説明はコメントに書いています。
前提として、貼り付け先のシートのデータはC3セルから始まっていて、間に空白を挟まないものとしています。また、セルをそのまま貼り付けています。これを、値だけ貼り付けるなどのやり方にも出来ます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる