Διαγραφή σειρών VBA | Παραδείγματα διαγραφής σειρών Excel χρησιμοποιώντας VBA

Excel VBA Διαγραφή σειράς

Κανονικά στο φύλλο εργασίας excel, έχουμε δύο διαφορετικές μεθόδους για τη διαγραφή σειρών, μία είναι η συντόμευση πληκτρολογίου και μια άλλη χρησιμοποιώντας τη μέθοδο δεξιού κλικ και εισαγωγής, αλλά στο VBA πρέπει να χρησιμοποιήσουμε τη δήλωση εντολής διαγραφής και φύλλου εργασίας για να διαγράψουμε όλες τις σειρές μαζί, το τέχνασμα Αυτό είναι ότι αν χρειαστεί να διαγράψουμε μία σειρά δίνουμε μια αναφορά μιας γραμμής αλλά για τις πολλαπλές στήλες δίνουμε πολλές αναφορές σειρών.

Χρησιμοποιώντας τη μέθοδο VBA Delete Row, μπορούμε να διαγράψουμε όλες τις κενές σειρές, μπορούμε να διαγράψουμε τη σειρά με βάση την τιμή κελιού, μπορούμε επίσης να διαγράψουμε ολόκληρη τη σειρά, εάν κάποιο από τα κελιά είναι κενά.

Σε αυτό το άρθρο, θα συζητήσουμε τη μέθοδο "VBA Delete Row". Κρατήστε τον εαυτό σας απασχολημένο για τα επόμενα 15 έως 20 λεπτά για να μάθετε για την ιδέα.

Πώς να διαγράψετε τη σειρά;

Μπορείτε να πραγματοποιήσετε λήψη αυτού του προτύπου VBA Delete Row Excel - VBA Delete Row Excel Template

Παράδειγμα # 1

Στο VBA πρέπει να αναφέρουμε τη σειρά που διαγράφουμε.

Κώδικας:

 Sub DeleteRow_Example1 () Cells (1, 1) End Sub 

Κελιά (1, 1) σημαίνει πρώτη στήλη πρώτης γραμμής, δηλαδή κελί Α1. Στη συνέχεια χρησιμοποιούμε τη μέθοδο «διαγραφή».

Κώδικας:

 Sub DeleteRow_Example1 () Cells (1, 1). Διαγραφή End Sub 

Τώρα αυτό θα διαγράψει το πρώτο κελί. Όλες οι τιμές της δεξιάς πλευράς θα μετατοπίσουν ένα κελί προς τα αριστερά.

Παράδειγμα # 2

Εάν θέλετε να διαγράψετε ολόκληρη τη σειρά, πρέπει να χρησιμοποιήσουμε την ιδιότητα "EntireRow", τότε πρέπει να χρησιμοποιήσουμε τη μέθοδο "διαγραφή" για να διαγράψουμε ολόκληρη τη σειρά του κελιού που έχουμε επιλέξει.

Κώδικας:

Υπο DeleteRow_Example2 () κελιά (1, 1). EntireRow. Διαγραφή End Sub

Για παράδειγμα, έχω εισαγάγει μερικούς χαρακτήρες σε ένα φύλλο excel ως εξής.

Τώρα αν εκτελέσω αυτόν τον κώδικα θα διαγράψει ολόκληρη τη σειρά και όχι ένα κελί.

Παράδειγμα # 3

Μπορούμε να διαγράψουμε τη σειρά χρησιμοποιώντας διάφορους τρόπους. Στο παραπάνω παράδειγμα, έχουμε διαγράψει τη σειρά χρησιμοποιώντας την ιδιότητα CELLS, τώρα θα δούμε πώς να διαγράψουμε χρησιμοποιώντας την ιδιότητα ROWS.

Τώρα πρέπει να αναφέρουμε ποια είναι η σειρά που πρέπει να διαγράψουμε, ας πούμε ότι πρέπει να διαγράψουμε την 5η σειρά.

Τώρα χρησιμοποιήστε την ιδιότητα "EntireRow".

Αφού επιλέξετε το ακίνητο τι πρέπει να κάνουμε, δηλαδή μέθοδο. Πρέπει να διαγράψουμε τη σειρά.

Κώδικας:

 Sub DeleteRow_Example3 () Σειρές (5) .EntireRow. Διαγραφή End Sub 

Έτσι, αυτός ο κωδικός θα διαγράψει την 5η σειρά.

Παράδειγμα # 4

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

Πώς διαγράφουμε πολλές σειρές;

Μπορούμε να χρησιμοποιήσουμε το αντικείμενο VBA RANGE για να διαγράψουμε περισσότερες από μία σειρές. Ας υποθέσουμε ότι έχετε κάποιες τιμές από τα κελιά A1 έως A6.

Τώρα θέλω να διαγράψω τις πρώτες 5 σειρές, οπότε μπορώ να αναφέρω αυτές τις σειρές χρησιμοποιώντας το αντικείμενο Range ως "Range (" A1: A5 ")"

Κώδικας:

 Sub DeleteRow_Example4 () Range ("A1: A5") End Sub 

Τώρα θέλω να χρησιμοποιήσω τη λέξη "EntireRow".

Κώδικας:

 Sub DeleteRow_Example4 () Εύρος ("A1: A5"). Ενότητα End End 

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

Κώδικας:

 Sub DeleteRow_Example4 () Εύρος ("A1: A5"). Ολόκληρη η σειρά. Διαγραφή End Sub 

Τώρα αυτό θα διαγράψει τις επιλεγμένες σειρές.

Παράδειγμα # 5

Διαγραφή σειρών με βάση την τιμή κελιού

Μπορούμε επίσης να χρησιμοποιήσουμε αυτήν τη μέθοδο "EntireRow.Delete" για να διαγράψουμε τη σειρά με βάση την τιμή κελιού στο VBA. Για παράδειγμα, έχω τιμές Ναι & Όχι από το κελί A1 έως A10.

Τώρα πρέπει να διαγράψουμε τις σειρές που έχουν την τιμή "Όχι". Για να εκτελέσουμε αυτήν την εργασία πρέπει να χρησιμοποιήσουμε τη συνάρτηση "IF" με βρόχους για να διαγράψουμε όλες τις σειρές που έχουν την τιμή "Όχι".

Ο παρακάτω κωδικός θα κάνει τη δουλειά για εμάς.

Κώδικας:

 Sub DeleteRow_Example5 () Dim k As Integer For k = 10 to 1 Step -1 If Cells (k, 1). Value = "No" Then Cells (k, 1) .EntireRow. Delete End if Next k End Sub 

Παράδειγμα # 6

Διαγραφή όλων των κενών σειρών κελιών

Υπάρχουν καταστάσεις όπου πρέπει να διαγράψουμε ολόκληρη τη σειρά εάν κάποιο από τα κελιά της περιοχής είναι κενό. Για παράδειγμα, έχω παρακάτω σύνολο δεδομένων.

Όλα τα χρωματιστά κελιά είναι κενά, επομένως πρέπει να διαγράψω ολόκληρη τη σειρά. Μπορούμε να εκτελέσουμε αυτήν την εργασία με δύο σύνολα κώδικα. Παρακάτω είναι ο κωδικός.

Κώδικας:

 Sub DeleteRow_Example6 () Εύρος ("A1: F10"). SpecialCells (xlCellTypeBlanks) .EntireRow. Διαγραφή End Sub 

Αυτό θα αναγνωρίσει τα κενά κελιά στην περιοχή A1 έως F10.IF τυχόν κενά κελιά που βρέθηκαν θα διαγράψουν ολόκληρη τη σειρά.

Το πρόβλημα με αυτόν τον κωδικό είναι ότι θα διαγράψει μόνο τη σειρά του κενού κελιού μόνο στην περιοχή Α1 έως F10, αλλά εάν κάποια κελιά είναι κενά σε άλλα κελιά δεν θα διαγραφεί. Έχοντας αυτό υπόψη, έχω γράψει έναν ακόμη κωδικό.

Κώδικας:

 Sub DeleteRow_Example7 () Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox ("Παρακαλούμε επιλέξτε το εύρος", "Blank Cells Rows Deletion", Type: = 8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCell. . Διαγραφή End Sub 

Όταν εκτελείτε πρώτα αυτόν τον κωδικό, θα σας ζητήσει να επιλέξετε το εύρος με ένα πλαίσιο εισόδου να εμφανίζεται μπροστά σας.

Αφού επιλέξετε το εύρος που πρέπει να κάνετε κλικ στο OK, θα διαγράψει όλες τις κενές σειρές κελιών στην επιλεγμένη περιοχή.