Gå til hovedindhold

Sådan filtreres en liste og slettes resten af ​​skjulte eller synlige rækker i Excel?

For en filtreret liste skal du muligvis slette de skjulte eller synlige rækker for kun at beholde de nyttige data. I denne artikel viser vi dig metoder til at slette resten af ​​skjulte eller synlige rækker på en filtreret liste i Excel.

Slet skjulte rækker i aktivt regneark med VBA-kode
Slet synlige rækker med filtreret liste ved at vælge alle synlige celler
Slet let skjulte eller synlige rækker med filtreret liste med Kutools til Excel


Slet skjulte rækker i aktivt regneark med VBA-kode

Dette afsnit viser dig VBA-kode for at slette skjulte rækker i det aktive ark. Gør som følger.

1. Aktiver det regneark, du har brug for for at slette skjulte rækker, tryk på andre + F11 taster samtidigt for at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik på i vinduet Microsoft Visual Basic til applikationer indsatte > Moduler. Og derefter kopiere og indsætte nedenstående VBA-kode i modulvinduet.

VBA-kode: Slet skjulte rækker

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. Tryk på F5 nøgle for at køre koden. Hvis der er skjulte rækker i det aktive ark, vises en dialogboks, der kører koden, for at fortælle dig, hvor mange skjulte rækker der er blevet slettet. Klik på OK knap for at slette de skjulte rækker. Se skærmbillede:

doc slet resten 1

Ellers får du følgende dialogboks, når du har kørt koden.

doc slet resten 1

Bemærk: ovenstående VBA-kode kan ikke kun slette skjulte rækker med filtreret liste, men også slette skjulte rækker, som du manuelt har skjult før.


Slet synlige rækker med filtreret liste ved at vælge alle synlige celler

For at slette synlige rækker med filtreret liste skal du gøre som følger.

1. Vælg alle filtrerede rækker, og tryk på F5 nøgle til at åbne gå til dialogboksen, og klik derefter på Særlig knap. Se skærmbillede:

doc slet resten 1

2. i Gå til Special dialogboksen, skal du kontrollere Kun synlige celler og klik derefter på OK .

doc slet resten 1

3. Nu er alle synlige rækker valgt, højreklik på markeringen, og klik derefter på Slet rækker.

doc slet resten 1

Indtil nu slettes alle synlige rækker fra den filtrerede liste.


Slet let skjulte eller synlige rækker med filtreret liste med Kutools til Excel

Ovennævnte to metoder er muligvis ikke ønsket løsninger til mange Excel-brugere, her introducerer vi dig et praktisk værktøj. Med Slet skjulte (synlige) rækker og kolonner nytte af Kutools til Excel, kan du nemt slette skjulte rækker i det valgte område / ark, aktivt ark eller alle regneark i Excel.

Før påføring Kutools til Excel, Bedes download og installer det først.

1. Hvis du kun vil slette skjulte eller synlige rækker på en filtreret liste, skal du vælge det filtrerede interval manuelt og derefter klikke på Kutools > Slette > Slet skjulte (synlige) rækker og kolonner. Se skærmbillede:

2. i Slet skjulte (synlige) rækker og søjler dialogboksen, hold I valgt interval valgt i Kig ind rullelisten (du kan vælge andre muligheder, som du har brug for), skal du markere Rækker valgmulighed i Slet type sektion og i Detaljeret type afsnit, tjek Synlige rækker or Skjulte rækker mulighed, som du har brug for. Og endelig klik på OK .

3. Derefter dukker en dialogboks op for at fortælle dig, hvor mange rækker der er blevet slettet. Klik venligst på OK .

  Hvis du vil have en gratis prøveperiode (30 dage) af dette værktøj, klik for at downloade det, og gå derefter til at anvende handlingen i henhold til ovenstående trin.


Slet skjulte eller synlige rækker med filtreret liste med Kutools til Excel

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
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