以下のマクロを組んだのですが、求めている動作になりません。
Dim a As Integer
Dim b As Integer
最終行 = Sheets(2).Range("D2").Value
ピッチ = Sheets(2).Range("M1").Value
For a = 5 To 最終行 Step ピッチ
For b = 2 To (最終行 - 3) * 2 Step 100
Sheets(2).Cells(a, 4).Resize(ピッチ, 2).Copy
Sheets(3).Cells(b, 1).Resize(ピッチ, 2).PasteSpecial Paste:=xlPasteValues
Next b
Next a
シート1のデータ(A)を50行ずつコピーしてシート2に貼り付けたいです。
シート1にはもう一つデータ(B)があり、それも50行ずつコピーしてシート2に貼り付けたいです。
これら2つのデータはシート2に交互に貼り付けたいです。
(A)1~50
↓
(B)1~50
↓
(A)51~100
↓
(B)51~100
そのため、データ(A)を50ずつコピーし100行ずつペーストするのを、データ(B)用も同じようにマクロを組めば良いと考えました。
説明下手で申し訳ありませんが、解決策をご教授願いたいです。
No.2ベストアンサー
- 回答日時:
No1です
不明点がいろいろあるので、以下、適当に仮定してサンプル的に作成してあります。
・コピー元のスタート行は1行目からとする
・データ(A)とデータ(B)の量が不明ですが、どちらかが少なくても詰めるようなことはせず、空白行が50行できても、残りのデータをその後にペーストする。
・説明文では「シート1」「シート2」となっていますが、コードは「Sheets(2)」「Sheets(3)」となっているようなので、後者を採用
・ピッチはとりあえず50行固定で、コード中に直接定地してあります。
※ 要領は以下の様な感じで可能と思いますので、仮定が違っている部分は調整してください。
Sub Sample_11878438()
Dim mxR As Long, rw As Long
Dim dR As Range
Const p = 50
Set dR = Worksheets("Sheet3").Range("A1")
With Worksheets("Sheet2")
mxR = .Cells(Rows.Count, 4).End(xlUp).Row
mxR = Application.Max(mxR, .Cells(Rows.Count, 10).End(xlUp).Row)
For rw = 1 To mxR Step p
dR.Resize(p, 2).Value = .Cells(rw, 4).Resize(p, 2).Value
dR.Offset(p).Resize(p, 2).Value = .Cells(rw, 10).Resize(p, 2).Value
Set dR = dR.Offset(p * 2)
Next rw
End With
End Sub
ご丁寧にありがとうございます。
ご教授頂いたものを入力しましたが、思た通りには行きませんでした。
当方VBA初心者なのもあり、修正箇所の見極めも時間がかかりそうです。
(自分なりに手を加えましたが、うまくいきませんでした)
同じ内容ですが、分かりやすく書いたつもりの質問を新たに投稿いたしました。
失礼でなければ、そちらで新たに回答していただけないでしょうか?
お手数をおかけし、申し訳ございません。
No.1
- 回答日時:
こんにちは
よくわかっていませんが、ご提示の二重ループは(多分)まとはずれのような気がします・・・
シート2への貼り付けたい順序はわかりますが、元となっている「シート1上のデータAとデータB」のレイアウトがどうなっているのかさっぱりわかりません。
それがはっきりすれば、(想像するところ)単純なコピペの繰り返しでできそうな気がしますけれど‥‥
目を通していただきありがとうございます。
シート1のDとE列にデータ(A)、JとK列にデータ(B)が並べられています。
各々2列50行ずつコピペしたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
Excelマクロのエラーを解決した...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
excelのマクロで該当処理できな...
-
【Excel VBA】Worksheets().Act...
-
同じ作業を複数のシートに実行...
-
XL:BeforeDoubleClickが動かない
-
VBAで、シート間の転記するコー...
-
ブック名、シート名を他のモジ...
-
シートが保護されている状態で...
-
エクセルのマクロについて教え...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
-
VBA 最終行まで数式をコピーする
-
【ExcelVBA】動的にボタン、ボ...
-
【VBA】指定した検索条件に一致...
-
VBA 検索して一致したセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報
ピッチ = Sheets(2).Range("M1").Value=50です。
目を通していただきありがとうございます。
シート1のDとE列にデータ(A)、JとK列にデータ(B)が並べられています。
各々2列50行ずつコピペしたいです。