~ 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 : = 거짓, 오리 엔테이션 : = xlTopToBottom, DataOption1 : = xlSortNormal' 그러나 이것은 공백 행을 맨 아래에 놓습니다. 실제로 행을 삭제하고 싶습니다 – Picapiedra
빈 행과 삭제 된 행을 어떻게 구별 할 수 있습니까? 빈 행이 맨 아래에 있으면 삭제 된 것처럼 보이지 않습니까? –