ブックBのシート1~シート? までのシートの中を範囲指定して切り取り、ブックAに挿入貼り付けを繰り返したいのですが、シートの数がその都度変動します。
この場合はどのようにしたらよろしいのでしょうか?
尚、シート1だけの場合は下記のように作りましが・・・・・
(範囲もシートにより変動する為)
VBA初心者です。宜しくお願いします。
Windows("B.xls").Activate
Worksheets(1).Select
Range("A26:R" & Range("R" & Cells.Rows.Count).End(xlUp).Row).Select
Selection.Cut
Windows("A.xlsm").Activate
Rows("2:2").Select
Selection.Insert Shift:=xlDown
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です。
すみません、ミス修正です。下記を使用してください。
Sub Macro()
Dim i As Long
Dim colNo As Long
Dim Lastrow As Long
Workbooks.Open Filename:=ThisWorkbook.Path & "\BookB.xlsx"
colNo = 1
For i = 1 To Worksheets.Count
With Worksheets(i)
Lastrow = .Cells(Rows.Count, "R").End(xlUp).Row
If Lastrow < 26 Then GoTo Continue
.Range(.Cells(26, "A"), .Cells(Lastrow, "R")).Copy _
Destination:=ThisWorkbook.Worksheets(1).Cells(2, colNo)
colNo = colNo + 18
Continue:
End With
Next i
Workbooks("BookB.xlsx").Close Savechanges:=False
End Sub
No.2
- 回答日時:
このマクロをBookA.xlsmに貼って起動します。
BookB.xlsxはBookA.xlsmと同一フォルダに置きます。R列最終行が26行目より上の場合は、データなしとして飛ばします。
Sub Macro()
Dim i As Long
Dim colNo As Long
Workbooks.open filename:=ThisWorkbook.path & "\BookB.xlsx"
colNo=1
For i=1 to WorkSheets.Count
Lastrow=Worksheets(i).Cells(Rows.count,"R").End(xlUp).Row
If Lastrow<26 Then Continue For
Worksheets(i).Range(Cells(26. "A"), Cells(Lastrow, "R")).Copy _
destination:=ThisWorkbook.worksheets(1).Cells(2, colNo)
colNo=colNo+18
Next i
Workbooks("BookB.xlsx").close Savechanges:=False
End Sub
No.1
- 回答日時:
複数シートはどうにでもなります。
問題は・複数シートはでコピーしたものをそれぞれ何処に貼るのですか?
・シートにより範囲が違うそうですが、A1~R列最終行でいいですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルVBAでパスの¥マークに...
-
エクセルの複数シートの保護を...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
VBAで条件によりフォントサイズ...
-
VBAでシートコピー後、シート名...
-
複数シートの特定の位置に連番...
-
エクセルでファイル保存時に複...
-
シート名ではなく、相対位置で...
-
エクセルでシート名を自動入力...
-
前の(左隣の)シートを連続参...
-
エクセルで複数設定したハイパーリンク先...
-
エクセルで前のシートを連続参...
-
excelでシート毎の最終更新日を...
-
EXCEL VBAで別のシー...
-
複数シートの色付きセルがある...
-
Accessのスプレッドシートエク...
-
シートを追加・名前を次月に変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルでファイルを開いたと...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルで前のシートを連続参...
-
前の(左隣の)シートを連続参...
-
EXCELで同一フォーマットのシー...
-
VBAでシートコピー後、シート名...
-
Excel 連番を入力する方法
-
エクセル 計算式も入っていない...
-
エクセルで前シートを参照して...
-
エクセルでシート名を自動入力...
-
Accessのスプレッドシートエク...
-
複数シートの特定の位置に連番...
-
エクセルのシート名をリスト化...
おすすめ情報
説明が足りなくて申し訳ございませんでした。
範囲というのはシートにより行数が違うということです。列はA~Rまでで変わりません。
貼り付ける場所はAブックの2行目に順番に挿入貼り付けをしたいのですが・・・
この説明でお分かりになりますでしょうか?