VBA Option Explicit | Πώς να καταστήσετε υποχρεωτική τη μεταβλητή δήλωση;
Excel VBA Option Explicit
Η δήλωση μεταβλητών είναι πολύ σημαντική στο VBA, το Option Explicit καθιστά υποχρεωτικό τον χρήστη να δηλώσει όλες τις μεταβλητές πριν τις χρησιμοποιήσει, οποιαδήποτε απροσδιόριστη μεταβλητή θα ρίξει ένα σφάλμα κατά την εκτέλεση του κώδικα, μπορούμε να γράψουμε την επιλογή λέξεων-κλειδιών ρητά ή μπορούμε να την ενεργοποιήσουμε για Όλοι οι κωδικοί από τις επιλογές επιτρέποντας τη δήλωση μεταβλητής.
Στο VBA πρόκειται για μεταβλητές. Για να αποθηκεύσουμε δεδομένα, χρειαζόμαστε μεταβλητές με κατάλληλο τύπο δεδομένων. Μπορείτε να με ρωτήσετε γιατί χρειάζεστε μεταβλητή όταν μπορείτε να προσθέσετε απευθείας την τιμή στο ίδιο το υπολογιστικό φύλλο. Αυτό οφείλεται κυρίως στους πολλαπλούς χρήστες του βιβλίου εργασίας, εάν το χειριστεί ένα άτομο, τότε μπορείτε να αναφέρετε απευθείας την τιμή στο ίδιο το φύλλο. Με τη δήλωση μεταβλητών μπορούμε να δημιουργήσουμε τον ευέλικτο κώδικα για την αποθήκευση των δεδομένων.
Τι είναι το VBA Option Explicit;
Ελπίζω να έχετε συναντήσει τη λέξη "Option Explicit" με την μπλε επένδυση στο επάνω μέρος της λειτουργικής σας μονάδας πριν ξεκινήσει οποιαδήποτε μακροεντολή σε αυτήν την ενότητα.
Στην αρχή της εκμάθησης του VBA, και εγώ δεν κατάλαβα τι ήταν αυτό και για να είμαι ειλικρινής δεν το σκέφτηκα καθόλου. Όχι μόνο για μένα ή για εσάς, αλλά είναι επίσης το ίδιο για όλους στην αρχή. Αλλά θα δούμε τη σημασία αυτής της λέξης τώρα.
Το "Option Explicit" είναι ο μέντορας μας στη δήλωση της μεταβλητής. Με την προσθήκη αυτής της λέξης καθιστά τη μεταβλητή δήλωση υποχρεωτική διαδικασία.
Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA Option Explicit Excel - Πρότυπο VBA Option Explicit ExcelΓια παράδειγμα, ανατρέξτε στον παρακάτω κώδικα για κατανόηση.
Κώδικας:
Υπο Παράδειγμα1 () i = 25 MsgBox i End Sub
Εάν εκτελέσω αυτόν τον κωδικό, θα λάβουμε την τιμή μιας μεταβλητής "I" στο πλαίσιο μηνυμάτων στο VBA.
Τώρα θα προσθέσω τη λέξη "Option Explicit" στην αρχή του κώδικα VBA.
Τώρα θα τρέξω τον κώδικα και θα δω τι θα συμβεί. Εάν ασκείστε μαζί μου, πατήστε το πλήκτρο F5 για να εκτελέσετε τον κωδικό.
Παρουσιάστηκε σφάλμα μεταγλώττισης και λέει "Η μεταβλητή δεν ορίζεται" . Δεν έχουμε δηλώσει τη μεταβλητή "i" αλλά αμέσως έχουμε αντιστοιχίσει την τιμή ως 25.
Εφόσον έχουμε προσθέσει τη λέξη "Option Explicit" μας αναγκάζει να δηλώσουμε τη μεταβλητή υποχρεωτικά.
Στον παραπάνω κώδικα το αλφάβητο «i» είναι αδήλωτο, οπότε έχουμε προσθέσει τη μεταβλητή λέξη ελεγκτή «Option Explicit» που μας εμποδίζει να χρησιμοποιήσουμε τις αδήλωτες μεταβλητές.
Τη στιγμή που προσθέτετε τη λέξη "Option Explicit" στο επάνω μέρος της λειτουργικής μονάδας, ισχύει για όλες τις μακροεντολές στη συγκεκριμένη ενότητα να δηλώνουν υποχρεωτικά τις μεταβλητές.
Πώς να καταστήσετε υποχρεωτική τη μεταβλητή δήλωση;
Εάν έχετε προσθέσει μη αυτόματα τη μεταβλητή μέντορα "Option Explicit" στη μονάδα σας όταν εισάγετε τη νέα ενότητα, δεν θα λάβετε από προεπιλογή αυτόν τον μεταβλητό μέντορα.
Αν νομίζετε ότι κάθε φορά που πρέπει να προσθέσετε τη λέξη "Option Explicit" για όλες τις νέες ενότητες χειροκίνητα, τότε κάνετε λάθος.
Επειδή μπορούμε να κάνουμε αυτήν τη λέξη υποχρεωτική σε όλες τις ενότητες κάνοντας μια απλή ρύθμιση. Ακολουθήστε τα παρακάτω βήματα για να προσαρμόσετε τις ρυθμίσεις.
Βήμα 1: Μεταβείτε στο πρόγραμμα επεξεργασίας Visual Basic.
Βήμα 2: Μεταβείτε στα ΕΡΓΑΛΕΙΑ και κάντε κλικ στο Επιλογές.
Βήμα 3: Τη στιγμή που κάνετε κλικ στο Επιλογές, θα δείτε το παρακάτω παράθυρο.
Βήμα 4: Κάτω από αυτό το παράθυρο, μεταβείτε στον Επεξεργαστή και επιλέξτε την επιλογή "Απαίτηση δήλωσης μεταβλητής" .
Βήμα 5: Κάντε κλικ στο OK για να κλείσετε το παράθυρο.
Από τώρα και στο εξής κάθε φορά που προσθέτετε νέα ενότητα εισάγει αυτόματα τη λέξη "Option Explicit" από προεπιλογή.
Το Option Explicit είναι το Saver σας
Το Option Explicit μας βοηθάει με πολλούς τρόπους, από την υποχρεωτική δήλωση της μεταβλητής και θα μας βοηθήσει μέχρι την εκτέλεση. Κοιτάξτε τον παρακάτω κώδικα.
Κώδικας:
Υπο Παράδειγμα2 () Dim Current Current Value as Integer CurentValue = 500 MsgBox CurrentValue End Sub
Στον παραπάνω κώδικα, έχω δηλώσει τη μεταβλητή "CurrentValue" ως ακέραιο. Στην επόμενη γραμμή, του έδωσα την τιμή των 500. Αν εκτελέσω αυτόν τον κωδικό, θα λάβω 500 ως αποτέλεσμα σε ένα πλαίσιο μηνυμάτων. Αλλά δείτε τι συμβαίνει.
Λέει «Η μεταβλητή δεν ορίζεται» και επισημαίνει τη δεύτερη γραμμή.
Αν κοιτάξουμε προσεκτικά τη δεύτερη γραμμή, υπάρχει ένα μικρό ορθογραφικό λάθος. Το όνομα της μεταβλητής μου είναι "CurrentValue" αλλά στη δεύτερη γραμμή έχω χάσει μια ορθογραφία, δηλαδή "r". Λέει "CurrentValue" αντί για "CurrentValue". Εφόσον έχω κάνει υποχρεωτική τη μεταβλητή δήλωση προσθέτοντας τη λέξη "Option Explicit" στο excel VBA, μου έχει επισημάνει το λάθος τυπογραφίας που έχω κάνει.
Έτσι, όταν διορθώσουμε την ορθογραφία και εκτελέσουμε τον κώδικα, θα έχουμε το αποτέλεσμα ως εξής.
Γεια σας στον νεοδιορισμένο μεταβλητό μέντορα !!!