〜50,000行のデータを含むスプレッドシートがあります。この値は、より多くのデータを取り込む機能があるため変動します。Excel VBAマクロ:フィルターを組み込んで、マクロを使用して表示された空の行を削除します。
私がやりたいことは、私が望まない項目を表示するために私の列フィルター(行2)を使用できることです。 次に、マクロはすべての可視値を削除し、フィルタをオフにし、すべての空の行を削除し、最後に2行目のフィルタを元に戻します。次のコードはこれを行うように設計されていますが、データ行列全体に空の行が残ります。ご協力ありがとうございました!
Sub DeleteVisible_Empty_BlankRows()
Application.ScreenUpdating = False
Range("C3:V" & rows.count).ClearContents
Worksheets("MyDataPull").AutoFilterMode = False
'Ungroup & regroup necessary columns
Columns("F:K").Columns.Ungroup
Dim r As Range, emrows As Long, i As Long
LRI = Mydatapull.Cells(Mydatapull.rows.count, "C").End(xlUp).Row
'Filter column C from A to Z so that blanks are put at the bottom
Range("C3:V" & LRI).Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
'Filter to only show blanks
Range("C3:V" & LRI).AutoFilter Field:=1, Criteria1:="=", Operator:=xlOr, Criteria2:="=" & ""
'Delete blanks
Range("C3:V" & LRI).EntireRow.Delete
'Turn filters back on
Worksheets("MyDataPull").AutoFilterMode = False
'Delete Extra rows
LRI = Mydatapull.Cells(Mydatapull.rows.count, "C").End(xlUp).Row
Range("C" & LRI + 1 & ":V" & rows.count).EntireRow.Delete
Mydatapull.Range("C2:V2").AutoFilter
Columns("F:K").Columns.Group
End Sub
すべての空白を一番下に置きます。 –
'Range(" C3:C "&LRI)を使用しようとしました.Sort Key1:= Range(" C3 ")、Order1:= xlAscending、Header := xlGuess、OrderCustom:= 1、MatchCase:= False、Orientation:= xlTopToBottom、DataOption1:= xlSortNormal'これは空白の行を一番下に置きます。実際に行を削除したい – Picapiedra
空の行と削除された行を区別する方法はありますか?空白の行が一番下にある場合、削除された行は同じに見えませんか? –