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

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

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

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

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

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

Δεν είναι δυνατή η χρήση μεταβλητών δευτερεύουσας διαδικασίας

Συνήθως δηλώνουμε τη μεταβλητή μέσα στην υπορουτίνα στο 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 και να έχετε όλες τις μεταβλητές σε μία ενότητα.
  • Ο μόνος τρόπος με τον οποίο μπορούμε να επαναφέρουμε την τιμή της μεταβλητής είναι η επαναφορά του κώδικα μακροεντολής πατώντας το κουμπί διακοπής.