Przejdź do głównej zawartości

Jak przefiltrować listę i usunąć pozostałe ukryte lub widoczne wiersze w programie Excel?

W przypadku listy filtrowanej może być konieczne usunięcie ukrytych lub widocznych wierszy, aby zachować tylko przydatne dane. W tym artykule pokażemy Ci metody usuwania pozostałych ukrytych lub widocznych wierszy przefiltrowanej listy w Excelu.

Usuń ukryte wiersze w aktywnym arkuszu z kodem VBA
Usuń widoczne wiersze przefiltrowanej listy, zaznaczając wszystkie widoczne komórki
Z łatwością usuwaj ukryte lub widoczne wiersze przefiltrowanej listy za pomocą Kutools for Excel


Usuń ukryte wiersze w aktywnym arkuszu z kodem VBA

Ta sekcja pokaże kod VBA do usuwania ukrytych wierszy w aktywnym arkuszu. Wykonaj następujące czynności.

1. Aktywuj arkusz roboczy, w którym chcesz usunąć ukryte wiersze, naciśnij inny + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. W oknie Microsoft Visual Basic for Applications kliknij wstawka > Moduł. Następnie skopiuj i wklej poniższy kod VBA do okna Module.

Kod VBA: Usuń ukryte wiersze

Sub RemoveHiddenRows()
	Dim xRow As Range
	Dim xRg As Range
	Dim xRows As Range
	On Error Resume Next
	Set xRows = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
	If xRows Is Nothing Then Exit Sub
		For Each xRow In xRows.Columns(1).Cells
			If xRow.EntireRow.Hidden Then
				If xRg Is Nothing Then
					Set xRg = xRow
				Else
					Set xRg = Union(xRg, xRow)
				End If
			End If
		Next
		If Not xRg Is Nothing Then
			MsgBox xRg.Count & " hidden rows have been deleted", , "Kutools for Excel"
			xRg.EntireRow.Delete
		Else
			MsgBox "No hidden rows found", , "Kutools for Excel"
		End If
	End Sub

3. wciśnij F5 klucz do uruchomienia kodu. Jeśli w aktywnym arkuszu znajdują się ukryte wiersze, po uruchomieniu kodu pojawi się okno dialogowe z informacją, ile ukrytych wierszy zostało usuniętych. Kliknij OK przycisk, aby usunąć ukryte wiersze. Zobacz zrzut ekranu:

doc usuń resztę 1

W przeciwnym razie po uruchomieniu kodu pojawi się następujące okno dialogowe.

doc usuń resztę 1

Note: powyższy kod VBA może nie tylko usuwać ukryte wiersze przefiltrowanej listy, ale także usuwać ukryte wiersze, które wcześniej ręcznie ukrywałeś.


Usuń widoczne wiersze przefiltrowanej listy, wybierając wszystkie widoczne funkcje komórek

Aby usunąć widoczne wiersze przefiltrowanej listy, wykonaj następujące czynności.

1. Wybierz wszystkie odfiltrowane wiersze i naciśnij F5 klucz, aby otworzyć przejdź do okno dialogowe, a następnie kliknij Specjalny przycisk. Zobacz zrzut ekranu:

doc usuń resztę 1

2. w Przejdź do specjalnego w oknie dialogowym, sprawdź Tylko widoczne komórki opcję, a następnie kliknij OK przycisk.

doc usuń resztę 1

3. Teraz wszystkie widoczne wiersze są zaznaczone, kliknij je prawym przyciskiem myszy, a następnie kliknij Usuń wiersze.

doc usuń resztę 1

Do tej pory wszystkie widoczne wiersze są usuwane z przefiltrowanej listy.


Z łatwością usuwaj ukryte lub widoczne wiersze przefiltrowanej listy za pomocą Kutools for Excel

Powyższe dwie metody mogą nie być pożądanymi rozwiązaniami dla wielu użytkowników Excela, tutaj przedstawiamy przydatne narzędzie. Z Usuń ukryte (widoczne) wiersze i kolumny użyteczność Kutools dla programu Excel, możesz łatwo usunąć ukryte wiersze w wybranym zakresie / arkuszach, aktywnym arkuszu lub wszystkich arkuszach w programie Excel.

Przed złożeniem wniosku Kutools dla programu ExcelProszę pobierz i zainstaluj najpierw.

1. Jeśli chcesz usunąć tylko ukryte lub widoczne wiersze przefiltrowanej listy, wybierz filtrowany zakres ręcznie, a następnie kliknij Kutools > Usuń > Usuń ukryte (widoczne) wiersze i kolumny. Zobacz zrzut ekranu:

2. w Usuń ukryte (widoczne) wiersze i kolumnę w oknie dialogowym, zachowaj W wybranym zakresie wybrane w Zaglądać rozwijaną listę (możesz wybrać inne opcje, jeśli potrzebujesz), zaznacz Wydziwianie opcja w Usuń typ sekcji i w Szczegółowy typ sekcja, sprawdź Widoczne rzędy or Ukryte wiersze opcja, jak potrzebujesz. I na koniec kliknij OK przycisk.

3. Następnie pojawi się okno dialogowe z informacją, ile wierszy zostało usuniętych, kliknij OK przycisk.

  Jeśli chcesz mieć bezpłatną wersję próbną (30 dni) tego narzędzia, kliknij, aby go pobrać, a następnie przejdź do wykonania operacji zgodnie z powyższymi krokami.


Usuń ukryte lub widoczne wiersze przefiltrowanej listy za pomocą Kutools for Excel

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
Comments (7)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi this VBA code is awesome useful.
This comment was minimized by the moderator on the site
Thanks for the info. This has been instructive. Please is there a way to filter and delete for specific numbers in rows of up to 1 million? Can the code above be modified to do so?
This comment was minimized by the moderator on the site
Hi,
Sorry did not test the code in such huge row data. Maybe you can make a copy of your data and test if the code can work.
This comment was minimized by the moderator on the site
VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
This comment was minimized by the moderator on the site
Feedback re: the macro for hidden row deletions - this takes too long to run on 900k rows to be useful. 2+ hours on an OC'd Threadripper 1950X and still running (had to end task). Any way to optimize it to use multiple cores or is this a VBA limitation?
This comment was minimized by the moderator on the site
Hi,
The code has been optimized. Please have a try. Thank you for your comment.

Sub RemoveHiddenRows()
Dim xFlag As Boolean
Dim xStr, xTemp As String
Dim xDiv, xMod As Long
Dim I, xCount, xRows As Long
Dim xRg, xCell, xDRg As Range
Dim xArr() As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Set xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
If xRg Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
Set xRg = xRg(1)
xFlag = True
xTemp = ""
xCount = 0
For I = 1 To xRows
Set xCell = xRg.Offset(I - 1, 0)
Do While xFlag
If xCell.EntireRow.Hidden Then
xStr = xCell.Address
xFlag = False
Else
GoTo Ctn
End If
Loop
If xCell.EntireRow.Hidden Then
xTemp = xStr & "," & xCell.Address
End If
If Len(xTemp) > 171 Then
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
xStr = xCell.Address
Else
xStr = xTemp
End If
Ctn:
Next
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
For I = xCount To 1 Step -1
If I = 1 Then
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
Else
xStr = xArr(I)
End If
If xDRg Is Nothing Then
Set xDRg = Range(xStr)
Else
Set xDRg = Union(xDRg, Range(xStr))
End If
If (Len(xDRg.Address) >= 244) Or (xCount = 1) Then
xDRg.EntireRow.Delete
Set xDRg = Nothing
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Awesome, thank you! Will review at my next opportunity / need for this and reply back.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations