Παγκόσμιες μεταβλητές VBA - Πώς να δηλώσετε καθολική μεταβλητή στο VBA;

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

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

Καθολική μεταβλητή στο Excel VBA

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

Τι είναι οι καθολικές μεταβλητές στο Excel VBA;

Οι καθολικές μεταβλητές VBA είναι μεταβλητές που δηλώνονται πριν από την έναρξη οποιασδήποτε μακροεντολής στη λειτουργική μονάδα. Όταν οι μεταβλητές δηλώνονται χρησιμοποιώντας "Δημόσια" ή "Καθολική", γίνεται "Καθολική μεταβλητή".

Δεν είναι δυνατή η χρήση μεταβλητών υπό διαδικασία.

Συνήθως δηλώνουμε τη μεταβλητή μέσα στην υπορουτίνα στο VBA χρησιμοποιώντας τη λέξη "Dim."

Κοιτάξτε την παραπάνω εικόνα. Έχω δηλώσει τη μεταβλητή "k" ως ακέραιο στο εσωτερικό της υποδιαδικασίας Global_Example1.

Ας υποθέσουμε ότι χρησιμοποιούμε αυτήν τη μεταβλητή εντός αυτής της διαδικασίας Sub ανά πάσα στιγμή. Ωστόσο, δεν μπορώ να χρησιμοποιήσω αυτήν τη μεταβλητή σε μια άλλη δευτερεύουσα διαδικασία είτε στην ίδια ενότητα κλάσης στο VBA είτε σε άλλη ενότητα.

Όπως φαίνεται στην παραπάνω εικόνα, η μεταβλητή "k", που δηλώνεται στην υποδικασία Global_Example1, δεν μπορεί να χρησιμοποιηθεί στην υπο διαδικασία Global_Example2.

Παρομοίως, η μεταβλητή "j" που δηλώνεται στην υποδιαδικασία Global_Example2 δεν μπορεί να χρησιμοποιηθεί στην υπο διαδικασία Global_Example1 παρόλο που και οι δύο υπο-διαδικασίες βρίσκονται στην ίδια ενότητα.

Πώς να δηλώσετε καθολική μεταβλητή στο VBA;

Ακολουθούν οι τρόποι δήλωσης μιας καθολικής μεταβλητής στο excel VBA.

# 1 - Οι μεταβλητές ενότητας μπορούν να χρησιμοποιηθούν σε οποιαδήποτε υποδικασία στην ίδια ενότητα

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

Στην παραπάνω εικόνα, έχω δηλώσει τη μεταβλητή μόνο στην αρχή της ενότητας. Έχω εκφράσει τη μεταβλητή "MyNumber" ως ακέραιο στην ενότητα 1 .

Μόλις δηλωθεί η μεταβλητή στην κορυφή της ενότητας, μπορούμε να χρησιμοποιήσουμε την ίδια μεταβλητή για όλες τις άλλες διαδικασίες Sub στην ίδια ενότητα. Σε αυτήν την περίπτωση, μπορούμε να χρησιμοποιήσουμε τη μεταβλητή "MyNumber" για όλες τις διαδικασίες Sub στην Ενότητα 1.

Το πρόβλημα είναι ότι δεν μπορούμε να τα χρησιμοποιήσουμε σε καμία από τις άλλες ενότητες. Σε αυτήν την περίπτωση, η μεταβλητή "MyNumber", που δηλώνεται στην Ενότητα 1, δεν μπορεί να χρησιμοποιηθεί στην Ενότητα 2.

# 2 - Οι καθολικές μεταβλητές μπορούν να χρησιμοποιηθούν σε οποιαδήποτε υπο διαδικασία και επίσης σε οποιαδήποτε ενότητα

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

Για να καταστήσουμε τη μεταβλητή διαθέσιμη για όλες τις διαδικασίες Sub σε όλες τις ενότητες, πρέπει να δηλώσουμε τη μεταβλητή στην κορυφή της ενότητας όχι χρησιμοποιώντας τη λέξη "Dim" αλλά χρησιμοποιώντας το όνομα "Public" ή "Global".

Στην παραπάνω εικόνα, μπορείτε να δείτε ότι έχω χρησιμοποιήσει τη λέξη «Δημόσιο» για να δηλώσω τη μεταβλητή αντί για την παλαιότερη λέξη «Dim.»

Στο παραπάνω στιγμιότυπο οθόνης, έχω δηλώσει τη μεταβλητή στην Ενότητα 1. Έχω δύο ακόμη ενότητες, με την ονομασία Ενότητα 2 & Ενότητα 3.

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

Όχι μόνο «Δημόσιο», αλλά μπορούμε επίσης να χρησιμοποιήσουμε τη λέξη «Παγκόσμιο» για να δηλώσουμε τη μεταβλητή.

Το Global & Public είναι οι δύο λέξεις-κλειδιά που δηλώνουν τη μεταβλητή και τις καθιστούν διαθέσιμες σε όλες τις ενότητες στο VBA.

Πράγματα που πρέπει να θυμάστε

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

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