
下記のマクロでコピーをして貼付ける部分が
"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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
5
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
6
最終行を取得して、別の列にコピーするマクロ
その他(Microsoft Office)
-
7
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
8
エクセルVBA 複数列をコピーする方法
Excel(エクセル)
-
9
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
10
VBA 空白行に転記する
Visual Basic(VBA)
-
11
VBA 数式を最終行までコピー
Excel(エクセル)
-
12
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
13
EXCELマクロで、シート間でのコピーペーストを繰り返す方法
Excel(エクセル)
-
14
VBA 最終行を選んだシートにコピーする。
Visual Basic(VBA)
-
15
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
16
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
17
エクセルマクロにて最終行まで数式をコピーする構文
Excel(エクセル)
-
18
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
19
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
20
マクロ 最終列をコピーして最終列の次の列に挿入する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
VB.net
-
Excel VBA オートフィルタの結...
-
VBAで入力の結果を他のセルに反...
-
【VBA】条件に一致しない行を削...
-
エクセルで空白行を削除する ...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
VBAで保存しないで閉じると空の...
-
マクロの保存先、開いてるすべ...
-
エクセルのvbaにて thisworkboo...
-
エクセルで、「いいね」のよう...
-
エクセルの、記録を終了したマ...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセルでマクロ(Excel 4.0)...
-
エクセル関数>参照ファイル名...
-
エクセル;相対パスを絶対パスへ...
-
me10 マクロについて
-
【Excel】他ブックからOpenされ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
エクセルのデータがない行には...
-
エクセルのVBAで指定した行数の...
-
VB.net
-
エクセルVBA任意の文字で検索し...
-
【至急】Excel 同一人物の情報...
-
【VBA】条件に一致しない行を削...
-
Excel VBAでオートフィルタで抽...
-
【VBA】条件に一致しない行を削...
-
マクロで最終行を取得してコピ...
-
エクセルで空白行を削除する ...
-
vbaエクセルマクロについて she...
-
Excel VBA オートフィルタの結...
-
空白を複数行一気に挿入するには?
-
【マクロ】A列最終行までを、カ...
-
エクセル住所録でフラッグの個...
-
マクロにて指定の文字間の文字...
-
エクセルで階層図を作る方法
-
VBAでsumif関数
-
エクセル VBAに関しての質問
おすすめ情報