Διαγραφή φύλλου VBA | Πώς να διαγράψετε το φύλλο εργασίας χρησιμοποιώντας τον κώδικα VBA;

Διαγραφή φύλλου Excel VBA

Για να διαγράψετε το φύλλο στο VBA εμείς μια μέθοδο διαγραφής φύλλου εργασίας. Για να εφαρμόσουμε αυτήν τη μέθοδο πρώτα πρέπει να προσδιορίσουμε ποιο φύλλο διαγράφουμε καλώντας το όνομα του φύλλου. Έχουμε δύο μεθόδους για να κάνουμε το ίδιο, πρώτα γράφουμε άμεσα το sheet1.delete και η δεύτερη μέθοδος είναι τα φύλλα (sheet1) .delete.

Ακολουθεί η σύνταξη.

Φύλλα εργασίας ("Όνομα φύλλου εργασίας"). Διαγραφή

Ή

Φύλλα ("Όνομα φύλλου"). Διαγραφή

Επομένως, πρώτα, πρέπει να καθορίσουμε το όνομα του φύλλου χρησιμοποιώντας είτε το φύλλο εργασίας είτε το αντικείμενο φύλλων , και στη συνέχεια μπορούμε να χρησιμοποιήσουμε τη μέθοδο "Διαγραφή" .

Πώς να διαγράψετε φύλλα Excel χρησιμοποιώντας τον κώδικα VBA;

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

Παράδειγμα # 1 - Διαγραφή φύλλου εργασίας χρησιμοποιώντας το όνομά του

Ας υποθέσουμε ότι έχετε πολλά φύλλα και για να διαγράψετε το συγκεκριμένο φύλλο εργασίας πρέπει να αναφέρουμε το φύλλο εργασίας με το όνομά του. Για παράδειγμα, έχω 3 διαφορετικά φύλλα με το όνομα "Πωλήσεις 2016", "Πωλήσεις 2017" και "Πωλήσεις 2018".

Αν θέλω να διαγράψω το φύλλο που ονομάζεται " Πωλήσεις 2017 ", τότε πρέπει να αναφέρω το όνομα του φύλλου όπως παρακάτω.

Κώδικας:

Υπο Delete_Example1 () Φύλλα εργασίας ("φύλλα 2017"). Τέλος Υποτ

Το πρόβλημα με την άμεση αναφορά του ονόματος του φύλλου εργασίας δεν βλέπουμε τη λίστα IntelliSense του VBA. Τέλος πάντων αναφέρω τη μέθοδο ως " Διαγραφή ".

Κώδικας:

Υπο Delete_Example1 () Φύλλα εργασίας ("φύλλα 2017"). Διαγραφή End Sub

Έτσι θα διαγραφεί το φύλλο που ονομάζεται " Πωλήσεις 2017 ".

Σφάλμα κατά τη διαγραφή του φύλλου εργασίας: Εάν προσπαθήσουμε να διαγράψουμε το φύλλο εργασίας που δεν υπάρχει ή εάν αναφέρουμε λανθασμένα το όνομα του φύλλου εργασίας, θα λάβουμε το σφάλμα vba ως "Subscript Out of Range".

Στα παραπάνω, έχω λάβει το σφάλμα "Subscript Out of Range" επειδή στο βιβλίο εργασίας μου δεν υπάρχει όνομα φύλλου που ονομάζεται "Πωλήσεις 2017".

Παράδειγμα # 2 - Διαγραφή φύλλου εργασίας από το όνομά του με μεταβλητές

Όπως έχουμε δει το παραπάνω παράδειγμα τη στιγμή που αναφερόμαστε στο όνομα του φύλλου εργασίας χρησιμοποιώντας το αντικείμενο Φύλλα εργασίας, δεν βλέπουμε τη λίστα IntelliSense. Για να δούμε τη λίστα IntelliSense πρέπει να χρησιμοποιήσουμε μεταβλητές.

Βήμα 1: Αρχικά δηλώστε τη μεταβλητή ως φύλλο εργασίας .

Κώδικας:

 Sub Delete_Example2 () Dim Ws ως φύλλο εργασίας End Sub 

Βήμα 2: Δεδομένου ότι το φύλλο εργασίας είναι μια μεταβλητή αντικειμένου, πρέπει να ορίσουμε τη μεταβλητή στο συγκεκριμένο φύλλο εργασίας χρησιμοποιώντας τη λέξη " SET ".

Κώδικας:

 Sub Delete_Example2 () Dim Ws As Set Sheet Works Ws = Worksheets ("Sales 2017") End Sub 

Τώρα η μεταβλητή "Ws" αναφέρεται στο φύλλο εργασίας που ονομάζεται "Πωλήσεις 2017".

Βήμα 3: Τώρα χρησιμοποιώντας τη μεταβλητή " Ws " μπορούμε να έχουμε πρόσβαση σε όλη τη λίστα IntelliSense του φύλλου εργασίας.

Κώδικας:

Υπο Delete_Example2 () Dim Ws As Set Sheet Works Ws = Worksheets ("Sales 2017") Ws. Τέλος Υποτ

Βήμα 4: Από τη λίστα IntelliSense επιλέξτε τη μέθοδο " Διαγραφή ".

Κώδικας:

 Υπο Delete_Example2 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales 2017") Ws.Deteete End Sub 

Όπως αυτό χρησιμοποιώντας μεταβλητές, μπορούμε να έχουμε πρόσβαση στη λίστα IntelliSense.

Παράδειγμα # 3 - Διαγραφή ενεργού φύλλου εργασίας

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

ActiveSheet.Delete

Αυτήν τη στιγμή το ενεργό φύλλο είναι "Πωλήσεις 2017".

Εάν εκτελέσω τον κωδικό, θα διαγράψει το ενεργό φύλλο, δηλαδή "Πωλήσεις 2017"

Τώρα θα επιλέξω "Πωλήσεις 2016".

Τώρα θα διαγράψει το ενεργό φύλλο, δηλαδή "Πωλήσεις 2016".

Έτσι, μπορούμε να χρησιμοποιήσουμε το αντικείμενο "Active Sheet" για να διαγράψουμε το φύλλο εργασίας.

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

Παράδειγμα # 4 - Διαγραφή περισσότερων από ενός φύλλου εργασίας

Στα παραπάνω παραδείγματα, έχουμε δει πώς να διαγράψουμε ένα μόνο φύλλο, αλλά τι γίνεται αν έχουμε πολλά φύλλα εργασίας, ας πούμε ότι θέλουμε να διαγράψουμε 10 φύλλα εργασίας.

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

Ο παρακάτω κώδικας θα περάσει από τα φύλλα εργασίας και θα διαγράψει όλα τα φύλλα εργασίας στο βιβλίο εργασίας.

Κώδικας:

 Υπο Delete_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook. Φύλλα εργασίας Ws. Διαγραφή επόμενου Ws End Sub 

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

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

Κώδικας:

 Sub Delete_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook. Φύλλα εργασίας εάν ActiveSheet.Name Ws.Name Then Ws.Deteete End if Next Ws End Sub 

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

Κώδικας:

 Sub Delete_Example2 () Dim Ws ως φύλλο εργασίας για κάθε Ws στο ActiveWorkbook.Wheheets If Ws.Name "Sales 2018" Στη συνέχεια "Μπορείτε να αλλάξετε το όνομα του φύλλου εργασίας Ws. Διαγραφή τέλους εάν το επόμενο Ws End Sub 

Ο παραπάνω κώδικας θα διαγράψει όλα τα φύλλα εργασίας εκτός από το φύλλο εργασίας που ονομάζεται "Πωλήσεις 2018".


$config[zx-auto] not found$config[zx-overlay] not found