Μετάβαση στο κύριο περιεχόμενο

Πώς να φιλτράρετε μια λίστα και να διαγράψετε τις υπόλοιπες κρυφές ή ορατές σειρές στο Excel;

Για μια φιλτραρισμένη λίστα, ίσως χρειαστεί να διαγράψετε τις κρυφές ή ορατές σειρές για να διατηρήσετε μόνο τα χρήσιμα δεδομένα. Σε αυτό το άρθρο, θα σας δείξουμε μεθόδους διαγραφής των υπόλοιπων κρυφών ή ορατών σειρών μιας φιλτραρισμένης λίστας στο Excel.

Διαγράψτε κρυφές σειρές στο ενεργό φύλλο εργασίας με κωδικό VBA
Διαγράψτε ορατές σειρές φιλτραρισμένης λίστας επιλέγοντας όλα τα ορατά κελιά
Διαγράψτε εύκολα κρυφές ή ορατές σειρές φιλτραρισμένης λίστας με το Kutools για Excel


Διαγράψτε κρυφές σειρές στο ενεργό φύλλο εργασίας με κωδικό VBA

Αυτή η ενότητα θα σας δείξει τον κώδικα VBA για να διαγράψετε κρυφές σειρές στο ενεργό φύλλο. Κάντε τα εξής:

1. Ενεργοποιήστε το φύλλο εργασίας που χρειάζεστε για να διαγράψετε κρυφές σειρές, πατήστε άλλος + F11 ταυτόχρονα για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

2. Στο παράθυρο της Microsoft Visual Basic for Applications, κάντε κλικ στο Κύριο θέμα > Μονάδα μέτρησης. Και, στη συνέχεια, αντιγράψτε και επικολλήστε τον παρακάτω κώδικα VBA στο παράθυρο Module.

Κωδικός VBA: Διαγραφή κρυφών σειρών

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. Πάτα το F5 κλειδί για την εκτέλεση του κώδικα. Εάν υπάρχουν κρυφές σειρές στο ενεργό φύλλο, μετά την εκτέλεση του κώδικα, θα εμφανιστεί ένα παράθυρο διαλόγου για να σας πει πόσες κρυφές σειρές έχουν διαγραφεί. Κάντε κλικ στο OK κουμπί για να διαγράψετε τις κρυφές σειρές. Δείτε το στιγμιότυπο οθόνης:

doc διαγραφή υπόλοιπο 1

Διαφορετικά, θα λάβετε το ακόλουθο παράθυρο διαλόγου μετά την εκτέλεση του κώδικα.

doc διαγραφή υπόλοιπο 1

Note: Ο παραπάνω κώδικας VBA όχι μόνο μπορεί να διαγράψει κρυμμένες σειρές φιλτραρισμένης λίστας, αλλά και να διαγράψει κρυφές σειρές που έχετε κρύψει χειροκίνητα στο παρελθόν.


Διαγράψτε τις ορατές σειρές της φιλτραρισμένης λίστας επιλέγοντας όλα τα χαρακτηριστικά ορατών κελιών

Για τη διαγραφή ορατών σειρών φιλτραρισμένης λίστας, κάντε τα εξής.

1. Επιλέξτε όλες τις φιλτραρισμένες σειρές και πατήστε F5 για να ανοίξετε το Μετάβαση σε πλαίσιο διαλόγου και, στη συνέχεια, κάντε κλικ στο Άμεση έκπτωση κουμπί. Δείτε το στιγμιότυπο οθόνης:

doc διαγραφή υπόλοιπο 1

2. Στο Πηγαίνετε στο ειδικό πλαίσιο ελέγχου, ελέγξτε το Μόνο ορατά κελιά και στη συνέχεια κάντε κλικ στο OK κουμπί.

doc διαγραφή υπόλοιπο 1

3. Τώρα έχουν επιλεγεί όλες οι ορατές σειρές, κάντε δεξί κλικ στην επιλογή και μετά κάντε κλικ στο Διαγραφή σειρών.

doc διαγραφή υπόλοιπο 1

Μέχρι τώρα, όλες οι ορατές σειρές έχουν διαγραφεί από τη φιλτραρισμένη λίστα.


Διαγράψτε εύκολα κρυφές ή ορατές σειρές φιλτραρισμένης λίστας με το Kutools για Excel

Οι παραπάνω δύο μέθοδοι μπορεί να μην είναι οι επιθυμητές λύσεις για πολλούς χρήστες του Excel, εδώ σας παρουσιάζουμε ένα εύχρηστο εργαλείο. Με την Διαγραφή κρυφών (ορατών) γραμμών και στηλών χρησιμότητα του Kutools για Excel, μπορείτε εύκολα να διαγράψετε κρυφές σειρές σε επιλεγμένα εύρη / φύλλα, ενεργό φύλλο ή όλα τα φύλλα εργασίας στο Excel.

Πριν από την εφαρμογή Kutools για Excel, σας παρακαλούμε κατεβάστε και εγκαταστήστε το πρώτα.

1. Εάν θέλετε να διαγράψετε μόνο κρυφές ή ορατές σειρές μιας φιλτραρισμένης λίστας, επιλέξτε το φιλτραρισμένο εύρος με μη αυτόματο τρόπο και, στη συνέχεια, κάντε κλικ Kutools > Διαγραφή > Διαγραφή κρυφών (ορατών) γραμμών και στηλών. Δείτε το στιγμιότυπο οθόνης:

2. Στο Διαγραφή κρυφών (ορατών) γραμμών & στηλών πλαίσιο διαλόγου, κρατήστε το Σε επιλεγμένο εύρος που επιλέχθηκαν στο Κοιτάξτε μέσα αναπτυσσόμενη λίστα (μπορείτε να ορίσετε άλλες επιλογές όπως χρειάζεστε), ελέγξτε το Γραμμές επιλογή του Διαγραφή τύπου ενότητα, και στο Λεπτομερής τύπος , ελέγξτε Ορατές σειρές or Κρυφές σειρές επιλογή όπως χρειάζεστε. Και τέλος κάντε κλικ στο OK κουμπί.

3. Στη συνέχεια, εμφανίζεται ένα παράθυρο διαλόγου για να σας πει πόσες σειρές έχουν διαγραφεί, κάντε κλικ στο OK κουμπί.

  Εάν θέλετε να έχετε μια δωρεάν δοκιμή (30-ημερών) αυτού του βοηθητικού προγράμματος, κάντε κλικ για να το κατεβάσετεκαι μετά πηγαίνετε για να εφαρμόσετε τη λειτουργία σύμφωνα με τα παραπάνω βήματα.


Διαγράψτε κρυφές ή ορατές σειρές φιλτραρισμένης λίστας με το Kutools για Excel

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

kte καρτέλα 201905


Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
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