Θα μπορούσε να υπάρξει κάποια στιγμή που πρέπει να ελέγξετε εάν υπάρχει ένα φύλλο εργασίας, το οποίο δημιουργήσατε ή διαγράψατε σε ένα βιβλίο εργασίας σε μακροεντολή / κώδικα VBA. Μπορούμε να το κάνουμε αυτό εύκολα χρησιμοποιώντας μια συνάρτηση / μακροεντολή. Υπάρχουν πολλοί τρόποι ελέγχου εάν υπάρχει φύλλο εργασίας.
Θα καλύψουμε τους ακόλουθους τρόπους σε αυτό το άρθρο:
1. Συνάρτηση καθορισμένη από το χρήστη γνωστή ως UDF
2. Υπο -ρουτίνα μέσω κουτιού μηνυμάτων
Πρώτη επιλογή: Λειτουργία καθορισμένη από το χρήστη
Το παρακάτω στιγμιότυπο περιέχει λίγα ονόματα φύλλων και θα ελέγξουμε αν υπάρχουν τα ονόματα του φύλλου στη στήλη Α.
Για να διαπιστώσουμε εάν υπάρχει ένα συγκεκριμένο φύλλο, πρέπει να ακολουθήσουμε τα παρακάτω βήματα για να ξεκινήσει ο επεξεργαστής VB
- Κάντε κλικ στην καρτέλα Προγραμματιστής
- Από την ομάδα κώδικα επιλέξτε Visual Basic
- Αντιγράψτε τον παρακάτω κώδικα στην τυπική μονάδα
Option Explicit Function WorksheetExists (ByVal WorksheetName As String) As Boolean Dim Sht As Worksheet For Every Sht In ThisWorkbook.Worksheets If Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Στη συνέχεια WorksheetExists = True Exit Function Τελειώνει αν Επόμενο Προσθήκη = Λειτουργία False End
- Για να ελέγξουμε, θα χρησιμοποιήσουμε το UDF στο κελί Β2 ως
- = WorksheetExists (A2)
- Στην παραπάνω εικόνα, το "MasterSheet" δεν υπάρχει στο δείγμα βιβλίου εργασίας μας. Ως εκ τούτου, ο τύπος έχει δώσει την απάντηση ως Λάθος
Επεξήγηση κώδικα:
Αυτή η συνάρτηση παίρνει την τιμή για "Όνομα φύλλου εργασίας" από τη μακροεντολή που εκτελεί άλλες δραστηριότητες. Εάν πρέπει να το αλλάξετε σύμφωνα με τον κωδικό σας, μπορείτε.
Για κάθε Sht In ThisWorkbook.Worksheets και Επόμενο Sht είναι τα μέρη έναρξης και λήξης του βρόχου αντίστοιχα.
Τότε Εάν Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Τότε
WorksheetExists = True
Ελέγχει αν το όνομα του φύλλου ταιριάζει με το όνομα του φύλλου που έχει περάσει από την κύρια μακροεντολή. Εάν συμβεί, το WorksheetExists είναι True και μπορούμε να βγούμε από τη συνάρτηση. Διαφορετικά, WorksheetExists = False επιστρέφεται πίσω στην κύρια μακροεντολή. Ο βρόχος πηγαίνει από το 1ο φύλλο στο επόμενο μέχρι να ελεγχθούν όλα τα φύλλα.
Δεύτερη επιλογή: Υπο -ρουτίνα μέσω πλαισίου μηνυμάτων
Μπορούμε να έχουμε μια κανονική υπορουτίνα που καλεί UDF και, αν βρεθεί το καθορισμένο φύλλο, το πλαίσιο μηνυμάτων θα εμφανίσει το «φύλλο υπάρχει». αν δεν βρεθεί, τότε εμφανίζεται το msgbox, "φύλλο δεν βρέθηκε".
Για έλεγχο, θα αντιγράψουμε τον ακόλουθο κώδικα στην τυπική μονάδα:
Function WorksheetExists2 (WorksheetName As String, Optional wb As Workbook) As Boolean If wb is Nothing then Set wb = ThisWorkbook With wb On Error Resume Next WorksheetExists2 = (.Sheets (WorksheetName) .Name = WorksheetName) On Error EndToTo 0 Sub FindSheet () If WorksheetExists2 ("Sheet1") Then MsgBox "Sheet1 is in this workbook" Else MsgBox "Ωχ: Το φύλλο δεν υπάρχει" Τέλος αν τέλος
Αφού εκτελέσουμε τη μακροεντολή "FindSheet", θα λάβουμε το ακόλουθο πλαίσιο μηνυμάτων εάν υπάρχει φύλλο:
Εάν το φύλλο δεν υπάρχει, θα λάβουμε το ακόλουθο πλαίσιο μηνυμάτων:
Ομοίως, μπορούμε να έχουμε έναν απλό βρόχο IF που ελέγχει εάν υπάρχει το φύλλο και εκτελεί ορισμένες ενέργειες στη συνέχεια.
Sub test () Dim ws As Worksheet For each ws In ThisWorkbook.Worksheets If ws.Name "Main" Then ws.Range ("A1"). Value = ws.Name Else ws.Range ("A1"). Value = " ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ ΣΥΝΔΕΣΗΣ "Τέλος αν Επόμενο ws Τέλος Sub
- Για να δοκιμάσουμε την παραπάνω μακροεντολή, πρέπει να δημιουργήσουμε ένα όνομα φύλλου "Main". Αυτή η μακροεντολή είναι πολύ απλή
- Περιλαμβάνει κάθε φύλλο εργασίας στο βιβλίο εργασίας
- Στη συνέχεια, ελέγχει εάν το όνομα του φύλλου εργασίας δεν είναι ΚΥΡΙΟ
- Εάν είναι ΚΥΡΙΟ, εμφανίζει κείμενο, όπως «ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ ΣΥΝΔΕΣΗΣ» στο Α1 αυτού του φύλλου, αλλιώς εμφανίζει το όνομα του φύλλου στο κελί Α1
- Αυτός είναι απλώς ένας άλλος τρόπος ελέγχου εάν υπάρχει το φύλλο. Εάν υπάρχει, εκτελέστε την ενέργεια Α, αν όχι, την ενέργεια Β
Συμπέρασμα: Μπορούμε να προσδιορίσουμε εάν υπάρχει ένα φύλλο στο βιβλίο εργασίας μας ή όχι. μπορούμε να χρησιμοποιήσουμε UDF ή υπορουτίνα σύμφωνα με τις ανάγκες μας.
Αν σας άρεσαν τα ιστολόγια μας, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε, να συμπληρώσουμε ή να καινοτομήσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email