• 締切済み

エクセル VBA 連続行コピー?

オートフィルターで抽出後、最終行へ飛び、そこから最終行含む上に連続する5つの行をコピーしたいです。 現在は、最終行へ飛ぶコードまでは書いたのですが、そこから5行コピーするコードが分かりません。 宜しくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >上記コードで実行してみたのですが、データが入っている行が隠れてしまった状態です。 そのマクロは、サンプルです。そのままでは使えません。 マクロの #  'オートフィルタ #    .Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:="ABC" この部分は、ご自身のコードに合わせてください。 #'ここから-最後尾から5行前までを選択 とあるのが、最後尾から5行前まで選択するコードです。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 こんな感じかな? Sub TestMacro()   Dim i As Long   Dim j As Integer   Dim rng As Range   With ActiveSheet     'オートフィルタ     .Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:="ABC"          'ここから-最後尾から5行前までを選択     With .AutoFilter.Range       For i = .Cells(.Cells.Count).Row To 2 Step -1         If .Rows(i).Hidden = False Then           If rng Is Nothing Then             Set rng = .Rows(i)           Else             Set rng = Union(rng, .Rows(i))           End If           j = j + 1         End If         If j >= 5 Then Exit For       Next i       'コピー       If Not rng Is Nothing Then         rng.Copy Worksheets("Sheet2").Range("A1")         Beep       Else         MsgBox "該当行は存在しません。", 48       End If     End With   End With   Set rng = Nothing End Sub

BIN-2
質問者

補足

Wendy02さん、ありがとうございます。 上記コードで実行してみたのですが、データが入っている行が隠れてしまった状態です。 自分でも調べてみますが、宜しくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A