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

Πίνακας περιεχομένων

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

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

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

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

Ή

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

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

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

Παράδειγμα # 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".

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next 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. Διαγραφή τέλους εάν

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

ενδιαφέροντα άρθρα...