Αυτό το σεμινάριο θα επιδείξει διαφορετικούς τρόπους διαγραφής γραμμών και στηλών στο Excel χρησιμοποιώντας VBA.
Διαγραφή ολόκληρης της γραμμής ή της στήλης
Για να διαγράψετε μια ολόκληρη σειρά στο VBA χρησιμοποιήστε αυτήν τη γραμμή κώδικα:
1 | Σειρές (1). Διαγραφή |
Παρατηρήστε ότι χρησιμοποιούμε το Διαγράφω μέθοδος διαγραφής μιας σειράς.
Αντί να γίνεται αναφορά στο Σειρές Αντικείμενο, μπορείτε να αναφέρετε σειρές με βάση τις Εύρος αντικειμένου με Ολόκληρη η σειρά:
1 | Εύρος ("a1"). EntireRow.Delete |
Ομοίως, για να διαγράψετε μια ολόκληρη στήλη, χρησιμοποιήστε αυτές τις γραμμές κώδικα:
1 | Στήλες (1). Διαγραφή |
1 | Εύρος ("a1"). EntireColumn.Delete |
Διαγραφή πολλαπλών σειρών ή στηλών
Χρησιμοποιώντας την ίδια λογική, μπορείτε επίσης να διαγράψετε πολλές σειρές ταυτόχρονα:
1 | Σειρές ("1: 3"). Διαγραφή |
ή στήλες:
1 | Στήλες ("A: C"). Διαγραφή |
Παρατηρήστε εδώ αναφέρουμε τους συγκεκριμένους αριθμούς γραμμών και στηλών / γραμμάτων που περιστοιχίζονται από εισαγωγικά.
Φυσικά, μπορείτε επίσης να αναφέρετε το EntireRow μιας περιοχής:
1 | Εύρος ("a1: a10"). EntireRow.Delete |
Σημείωση: Τα παρακάτω παραδείγματα δείχνουν μόνο τη διαγραφή γραμμών, ωστόσο όπως μπορείτε να δείτε παραπάνω, η σύνταξη είναι σχεδόν πανομοιότυπη για τη διαγραφή στηλών.
Διαγραφή κενών / κενών σειρών
Αυτό το παράδειγμα θα διαγράψει μια γραμμή εάν ολόκληρη η σειρά είναι κενή:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Dim cell As RangeΓια κάθε κελί σε εύρος ("b2: b20")Εάν Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Τότεcell.EntireRow.DeleteΤέλος εανΕπόμενο κελίΤέλος υπο |
Χρησιμοποιεί τη συνάρτηση φύλλου εργασίας του Excel: COUNTA.
Διαγραφή γραμμής εάν το κελί είναι κενό
Αυτό θα διαγράψει μια γραμμή εάν μια συγκεκριμένη στήλη σε αυτήν τη σειρά είναι κενή (σε αυτήν την περίπτωση η στήλη Β):
1 | Εύρος ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Διαγραφή γραμμής με βάση την τιμή κελιού
Αυτό θα πραγματοποιήσει βρόχο σε ένα εύρος και θα διαγράψει γραμμές εάν μια συγκεκριμένη τιμή κελιού σε αυτήν τη σειρά λέει "διαγραφή".
1234567891011 | Sub DeleteRowswithSpecificValue ()Dim cell As RangeΓια κάθε κελί σε εύρος ("b2: b20")Εάν cell.Value = "διαγραφή" Τότεcell.EntireRow.DeleteΤέλος εανΕπόμενο κελίΤέλος υπο |
Περισσότερα διαγραφή παραδειγμάτων γραμμής και στήλης
Διαγραφή διπλών σειρών
Αυτός ο κώδικας θα διαγράψει όλες τις διπλές σειρές σε μια περιοχή:
1 | Εύρος ("b2: c100"). RemoveDuplicates Columns: = 2 |
Σημειώστε ότι ορίσαμε στήλες: = 2. Αυτό λέει στο VBA να ελέγξει και τις δύο πρώτες στήλες δεδομένων όταν εξετάζει εάν οι γραμμές είναι διπλές. Ένα διπλότυπο βρίσκεται μόνο όταν και οι δύο στήλες έχουν διπλές τιμές.
Αν το είχαμε ορίσει σε 1, μόνο η πρώτη σειρά θα είχε ελεγχθεί για διπλές τιμές.
Διαγραφή γραμμών πίνακα
Αυτός ο κώδικας θα διαγράψει τη δεύτερη σειρά σε έναν πίνακα με αναφορά στη ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Διαγραφή φιλτραρισμένων σειρών
Για να διαγράψετε μόνο τις γραμμές που είναι ορατές μετά το φιλτράρισμα:
1 | Εύρος ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Διαγραφή γραμμών στο εύρος
Αυτός ο κωδικός θα διαγράψει όλες τις γραμμές στην περιοχή:
1 | Εύρος ("a1: a10"). EntireRow.Delete |
Διαγραφή επιλεγμένων σειρών
Αυτός ο κωδικός θα διαγράψει όλες τις επιλεγμένες σειρές:
1 | Selection.EntireRow.Delete |
Διαγραφή τελευταίας σειράς
Αυτό θα διαγράψει την τελευταία χρησιμοποιούμενη σειρά στη στήλη Β:
1 | Κελιά (Rows.Count, 2). End (xlUp) .EntireRow.Delete |
Αλλάζοντας το 2 σε 1, μπορείτε να διαγράψετε την τελευταία χρησιμοποιούμενη σειρά στη στήλη Α, κ.λπ .:
1 | Κελιά (Rows.Count, 1). End (xlUp) .EntireRow.Delete |
Διαγραφή στηλών κατά αριθμό
Για να διαγράψετε μια στήλη με τον αριθμό της, χρησιμοποιήστε έναν κωδικό σαν αυτόν:
1 | Στήλες (2). Διαγραφή |