Přejít k hlavnímu obsahu

Jak filtrovat seznam a odstranit zbývající skryté nebo viditelné řádky v aplikaci Excel?

U filtrovaného seznamu možná budete muset odstranit skryté nebo viditelné řádky, aby se zachovala pouze užitečná data. V tomto článku vám ukážeme způsoby odstranění zbývajících skrytých nebo viditelných řádků filtrovaného seznamu v aplikaci Excel.

Odstraňte skryté řádky v aktivním listu pomocí kódu VBA
Odstraňte viditelné řádky filtrovaného seznamu výběrem všech viditelných buněk
Snadno odstraňte skryté nebo viditelné řádky filtrovaného seznamu pomocí programu Kutools pro Excel


Odstraňte skryté řádky v aktivním listu pomocí kódu VBA

Tato část vám ukáže kód VBA k odstranění skrytých řádků na aktivním listu. Postupujte prosím následovně.

1. Aktivujte list, který potřebujete k odstranění skrytých řádků, stiskněte Další + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

2. V okně Microsoft Visual Basic pro aplikace klepněte na Vložit > Modul. A pak zkopírujte a vložte níže uvedený kód VBA do okna modulu.

Kód VBA: Odstraňte skryté řádky

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. zmáčkni F5 klíč ke spuštění kódu. Pokud jsou na aktivním listu skryté řádky, po spuštění kódu se zobrazí dialogové okno s informacemi o tom, kolik skrytých řádků bylo odstraněno. Klikněte na ikonu OK tlačítko pro odstranění skrytých řádků. Viz screenshot:

dokument odstranit zbytek 1

V opačném případě se po spuštění kódu zobrazí následující dialogové okno.

dokument odstranit zbytek 1

Poznámka: výše uvedený kód VBA může nejen odstranit skryté řádky filtrovaného seznamu, ale také odstranit skryté řádky, které jste dříve ručně skryli.


Odstraňte viditelné řádky filtrovaného seznamu výběrem funkce všech viditelných buněk

Chcete-li odstranit viditelné řádky filtrovaného seznamu, postupujte takto.

1. Vyberte všechny odfiltrované řádky a stiskněte F5 klávesa pro otevření Přejít na V dialogovém okně klepněte na ikonu Speciální knoflík. Viz screenshot:

dokument odstranit zbytek 1

2. V Přejít na speciální V dialogovém okně zaškrtněte Pouze viditelné buňky možnost a poté klikněte na OK .

dokument odstranit zbytek 1

3. Nyní jsou vybrány všechny viditelné řádky, klikněte pravým tlačítkem na výběr a poté klikněte na Odstranit řádky.

dokument odstranit zbytek 1

Až do teď jsou všechny viditelné řádky odstraněny z filtrovaného seznamu.


Snadno odstraňte skryté nebo viditelné řádky filtrovaného seznamu pomocí programu Kutools pro Excel

Výše uvedené dvě metody nemusí být řešením přání pro mnoho uživatelů aplikace Excel, zde vám představujeme užitečný nástroj. S Odstranit skryté (viditelné) řádky a sloupce užitečnost Kutools pro Excel, můžete snadno odstranit skryté řádky ve vybraném rozsahu / listech, aktivním listu nebo všech listech v aplikaci Excel.

Před aplikací Kutools pro Excel, Prosím nejprve si jej stáhněte a nainstalujte.

1. Pokud chcete odstranit pouze skryté nebo viditelné řádky filtrovaného seznamu, vyberte ručně filtrovaný rozsah a klikněte na Kutools > Vymazat > Odstranit skryté (viditelné) řádky a sloupce. Viz snímek obrazovky:

2. V Odstranit skryté (viditelné) řádky a sloupce dialogové okno ponechejte Ve zvoleném rozsahu vybrané v Podívejte se do rozevírací seznam (můžete vybrat další možnosti podle potřeby), zkontrolujte Řádky možnost v Smazat typ sekci a v Podrobný typ část, zkontrolujte Viditelné řádky or Skryté řádky možnost, jak potřebujete. A nakonec klikněte na OK .

3. Poté se zobrazí dialogové okno s informacemi o tom, kolik řádků bylo smazáno. Klikněte prosím na OK .

  Pokud chcete mít bezplatnou (30denní) zkušební verzi tohoto nástroje, kliknutím jej stáhněte, a poté přejděte k použití operace podle výše uvedených kroků.


Odstraňte skryté nebo viditelné řádky filtrovaného seznamu pomocí programu Kutools pro Excel

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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