下記のマクロでコピーをして貼付ける部分が
"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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
最終行を取得して、別の列にコピーするマクロ
その他(Microsoft Office)
-
VBA 最終行を選んだシートにコピーする。
Visual Basic(VBA)
-
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
-
4
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
5
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
6
VBA 最終行まで数式をコピーする
Visual Basic(VBA)
-
7
VBA 数式を最終行までコピー
Excel(エクセル)
-
8
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
11
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
12
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
13
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
エクセルVBAで選択状態を解除のしかた
Excel(エクセル)
-
16
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
17
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
18
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
19
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
20
マクロ最終行挿入
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの重複データに色付け
-
Excel VBA オートフィルタの結...
-
Excel VBAでオートフィルタで抽...
-
Excel VBAの質問。行のコピーと...
-
【VBA】条件に一致しない行を削...
-
エクセルで空白行を削除する ...
-
Excel VBAで列を行に変換するには
-
EXCEL VBAでA列にある空白行よ...
-
Excel マクロ 検索結果を別シ...
-
WPSOffice_マクロの有効化について
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
名前の変わるブックをアクティ...
-
LDPlayerのマクロの編集方法を...
-
【マクロ】必要な項目(列)の...
-
【Excel VBA】マクロでExcel自...
-
複数のExcelファイルの印刷設定...
-
エクセルについて教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで空白行を削除する ...
-
数値に見えるものはすべて数値...
-
エクセルのデータがない行には...
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
【VBA】条件に一致しない行を削...
-
エクセルのVBAで指定した行数の...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
マクロにて指定の文字間の文字...
-
Excel97 指定した行だけマク...
-
EXCEL VBAでA列にある空白行よ...
-
excel2021で実行できないマクロ...
-
Excel 別ブックから該当データ...
-
VBAでの重複データに色付け
-
Excel VBA オートフィルタの結...
-
エクセルで階層図を作る方法
-
VBAで特定の行と一つ上の行を削...
-
【至急】Excel 同一人物の情報...
-
Excelで、マウスで範囲を選択し...
おすすめ情報