プロが教えるわが家の防犯対策術!

こんにちは

Excelで、オートフィルターを使い「空白以外のセル」を表示させ、
その空白以外の行をコピーしたいのですが、ここまでをマクロにすると
どのようになるでしょうか。

よろしくお願いします。

A 回答 (2件)

> オートフィルターを使い「空白以外のセル」を表示


これは、マクロの自動記録で取得できますよね。

> 選択された空白以外の行をコピー
事前にデータ範囲に名前(例:QQQ)をつけておけば、
 Range("QQQ").Copy
を、上記マクロに続ければよいでしょう。
    • good
    • 5

こんにちは。



一例です。参考までに。

元のデータがSheet1のA1セルを基点に入力されていて、
A列の空白以外のセルをオートフィルタで抽出し、
Sheet2のA1セル以降にペーストする例です。

'=============標準モジュールに記述===================================================
Sub test()
 Dim FilterRng As Range
 Dim PasteRng As Range
 Dim KeyColA As String
 Dim KeyCol As Long
 
 Set FilterRng = Worksheets("Sheet1").Range("A1").CurrentRegion 'オートフィルター領域
 Set PasteRng = Worksheets("Sheet2").Range("A1")        'ペースト先のセル
 KeyColA = "A"       '空白を含む抽出のキーとなる列
 
 
 KeyCol = Cells(1, KeyColA).Column '列番号の取得
 With FilterRng  
  .AutoFilter  'フィルタ設定
  If Not ActiveSheet.AutoFilterMode Then .AutoFilter  
  .AutoFilter Field:=KeyCol, Criteria1:="<>"  '空白以外のセルで抽出  
  PasteRng.Parent.Cells.Clear  'ペースト先のシートの初期化  
  .SpecialCells(xlCellTypeVisible).Copy Destination:=PasteRng  '可視セルをコピー&ペースト  
  .AutoFilter  'フィルタ解除
 End With

End Sub
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!