
下記のマクロでコピーをして貼付ける部分が
"L3:L130"になっている為、130行を超える部分は
空白になってしまいます。
データの最終行を取得して貼付るようにしたいのですが
どなたか、教えていただけないでしょうか??
Sub マクロ①()
'
' マクロ① Macro
'
'
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("ファイル出力").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ファイル出力").Sort.SortFields.Add2 Key:=Range( _
"D3:D3140"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("ファイル出力").Sort
.SetRange Range("A2:AB3140")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("L1").Select
Selection.Copy
Range("L3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("L3:L130")
Range("L3:L130").Select
Range("AA1").Select
Selection.Copy
Range("AA3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("AA3:AA130")
Range("AA3:AA130").Select
Range("F2").Select
End Sub
No.2ベストアンサー
- 回答日時:
こんばんは
>"L3:L130"になっている為、130行を超える部分は空白になってしまいます。
>データの最終行を取得して貼付る(AutoFill)
可変のセル範囲を取得する方法は色々あるのでこの機会に覚えるのが良いと
https://www.niji.or.jp/home/toru/notes/8.html
L列最終行を取得する場合、
Cells(Rows.Count, "L").End(xlUp).Row (一例)
これを既存のコードに組み込むと
変える場所が2か所で長めになるので、記録マクロではない 変数を使う方法を参考コードにしてみます
該当部分を添削すると
Range("L1").Select
Selection.Copy
Range("L3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
’上記既存部分
Dim lastRow As Long
lastRow = Cells(Rows.Count, "L").End(xlUp).Row
Range("L3").AutoFill Destination:=Range("L3:L" & lastRow)
Range("AA1").Copy Range("AA3")
Range("AA3").AutoFill Destination:=Range("AA3:AA" & lastRow)
Range("F2").Select
End Sub
不要な.Selectも消しました(ここも参考になるかも)
注意:ありえないと思いますが、L列及びAA列の4行目以降に値がない場合
単セルに対してAutoFill出来ない為、エラーになると思われます。
No.3
- 回答日時:
こんばんは
>"L3:L130"になっている為、130行を超える部分は
>空白になってしまいます。
必ずL3セルより後に最終行が存在すると仮定しても良いのなら・・
Range("L3") = Range("L1")
Range("L3").AutoFill Destination:=Range(Range("L3"), Cells(Rows.Count, "L").End(xlUp))
でL1セルのコピーとL3以降へのオートフィルが可能になると思います。
※ 最終行がL2だったりする場合は、L2:L3 の範囲にオートフィルされます。
※ AA3:AA130の部分も同様であれば、同様の記述で可能です。
※ ご提示のコードから、不要な Selection 等の記述は省いてあります。

No.1
- 回答日時:
Range("D3:D3140"),Range("A2:AB3140")は
Range("D3:D140"),Range("A2:AB140")かい?
最終行はRange("A65536").End(xlUp).Rowで取得
Range("D3:D140")なら
Range("D3:D" & Range("A65536").End(xlUp).Row)
解りずらければ EN=Range("A65536").End(xlUp).Row
として
Range("D3:D" & EN)
他全て同じ様に修正。Range("L3:L" & EN)の様に
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
-
4
最終行を取得して、別の列にコピーするマクロ
その他(Microsoft Office)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
7
エクセルVBA 複数列をコピーする方法
Excel(エクセル)
-
8
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
9
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
10
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
11
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
12
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
13
VBA 空白行に転記する
Visual Basic(VBA)
-
14
VBA 最終行を選んだシートにコピーする。
Visual Basic(VBA)
-
15
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
16
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
17
EXCELマクロで、シート間でのコピーペーストを繰り返す方法
Excel(エクセル)
-
18
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
19
エクセルマクロにて最終行まで数式をコピーする構文
Excel(エクセル)
-
20
VBA 数式を最終行までコピー
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
UsedRangeの範囲の設定
-
Excel マクロ 検索結果を別シ...
-
【マクロ】A列最終行までを、カ...
-
各個体に対する平均値の自動計...
-
excel2021で実行できないマクロ...
-
縦型カレンダーを横型にできま...
-
列から特定の文字列検索→該当以...
-
エクセルのデータがない行には...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
【至急】Excel 同一人物の情報...
-
マクロにて指定の文字間の文字...
-
テキストファイル読み込みにお...
-
VBAで保存しないで閉じると空の...
-
【マクロ】元データと同じお客...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
複数のマクロボタンをまとめて...
-
エクセル関数>参照ファイル名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
Excel VBAでオートフィルタで抽...
-
数値に見えるものはすべて数値...
-
VB.net
-
列から特定の文字列検索→該当以...
-
エクセルで空白行を削除する ...
-
Excel マクロ 検索結果を別シ...
-
エクセルのデータがない行には...
-
【マクロ】A列最終行までを、カ...
-
【VBA】条件に一致しない行を削...
-
各個体に対する平均値の自動計...
-
エクセルのVBAで指定した行数の...
-
EXCEL VBAでA列にある空白行よ...
-
VBAでの重複データに色付け
-
空白を複数行一気に挿入するには?
-
エクセルで階層図を作る方法
-
vbaエクセルマクロについて she...
-
【至急】Excel 同一人物の情報...
-
Excel97 指定した行だけマク...
おすすめ情報