Salt la conținutul principal

Cum se filtrează o listă și se șterg restul rândurilor ascunse sau vizibile din Excel?

Pentru o listă filtrată, poate fi necesar să ștergeți rândurile ascunse sau vizibile pentru a păstra doar datele utile. În acest articol, vă vom arăta metodele de ștergere a restului rândurilor ascunse sau vizibile ale unei liste filtrate în Excel.

Ștergeți rândurile ascunse din foaia de lucru activă cu cod VBA
Ștergeți rândurile vizibile ale listei filtrate selectând toate celulele vizibile
Ștergeți cu ușurință rândurile ascunse sau vizibile ale listei filtrate cu Kutools pentru Excel


Ștergeți rândurile ascunse din foaia de lucru activă cu cod VBA

Această secțiune vă va arăta codul VBA pentru a șterge rândurile ascunse din foaia activă. Vă rugăm să faceți următoarele.

1. Activați foaia de lucru de care aveți nevoie pentru a șterge rândurile ascunse, apăsați Alt + F11 tastele simultan pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. În fereastra Microsoft Visual Basic pentru aplicații, faceți clic pe Insera > Module. Și apoi copiați și lipiți codul VBA de mai jos în fereastra Module.

Cod VBA: ștergeți rândurile ascunse

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. apasă pe F5 tasta pentru a rula codul. Dacă există rânduri ascunse în foaia activă, după rularea codului, va apărea o casetă de dialog pentru a vă spune câte rânduri ascunse au fost șterse. Apasă pe OK pentru a șterge rândurile ascunse. Vedeți captura de ecran:

doc șterge restul 1

În caz contrar, veți primi următoarea casetă de dialog după executarea codului.

doc șterge restul 1

notițe: codul VBA de mai sus nu numai că poate șterge rândurile ascunse ale listei filtrate, ci și șterge rândurile ascunse pe care le-ați ascuns manual anterior.


Ștergeți rândurile vizibile ale listei filtrate selectând toate caracteristicile celulelor vizibile

Pentru ștergerea rândurilor vizibile din lista filtrată, procedați după cum urmează.

1. Selectați toate rândurile filtrate și apăsați F5 tasta pentru a deschide fișierul Mergi la casetă de dialog, apoi faceți clic pe Special buton. Vedeți captura de ecran:

doc șterge restul 1

2. În Du-te la Special caseta de dialog, verificați Numai celule vizibile , apoi faceți clic pe OK butonul.

doc șterge restul 1

3. Acum sunt selectate toate rândurile vizibile, faceți clic dreapta pe selecție, apoi faceți clic pe Ștergeți rândurile.

doc șterge restul 1

Până acum, toate rândurile vizibile sunt șterse din lista filtrată.


Ștergeți cu ușurință rândurile ascunse sau vizibile ale listei filtrate cu Kutools pentru Excel

Este posibil ca cele două metode de mai sus să nu fie soluțiile dorite pentru mulți utilizatori Excel, aici vă prezentăm un instrument la îndemână. Cu Ștergeți rândurile și coloanele ascunse (vizibile) utilitatea Kutools pentru Excel, puteți șterge cu ușurință rândurile ascunse din intervalul / foile selectate, foaia activă sau toate foile de lucru din Excel.

Înainte de a aplica Kutools pentru Excel, Vă rugăm să descărcați-l și instalați-l mai întâi.

1. Dacă doriți doar să ștergeți rândurile ascunse sau vizibile ale unei liste filtrate, selectați manual intervalul filtrat, apoi faceți clic pe Kutools > Șterge > Ștergeți rândurile și coloanele ascunse (vizibile). Vedeți captura de ecran:

2. În Ștergeți rândurile și coloana ascunse (vizibile) caseta de dialog, păstrați În gama selectată selectat în Uită-te în listă derulantă (puteți selecta alte opțiuni după cum aveți nevoie), verificați Rânduri opțiune în Ștergeți tipul secțiune și în secțiunea Tipul detaliat secțiune, verificați Rânduri vizibile or Rânduri ascunse opțiune după cum aveți nevoie. Și în cele din urmă faceți clic pe OK butonul.

3. Apoi apare o casetă de dialog pentru a vă spune câte rânduri au fost șterse, faceți clic pe OK butonul.

  Dacă doriți să aveți o perioadă de încercare gratuită (30 de zile) a acestui utilitar, vă rugăm să faceți clic pentru a-l descărca, și apoi mergeți pentru a aplica operația conform pașilor de mai sus.


Ștergeți rândurile ascunse sau vizibile ale listei filtrate cu Kutools pentru Excel

Cele mai bune instrumente de productivitate de birou

🤖 Kutools AI Aide: Revoluționați analiza datelor pe baza: Execuție inteligentă   |  Generați codul  |  Creați formule personalizate  |  Analizați datele și generați diagrame  |  Invocați funcțiile Kutools...
Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

Descriere


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
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