Συμπτώματα
Στο Microsoft Office Excel, ο κώδικας μακροεντολών Microsoft Visual Basic for Application (VBA) που περιέχεται "πίσω" από ένα φύλλο εργασίας ή βιβλίο εργασίας ενδέχεται να μην λειτουργεί σωστά.
Αιτία
Αυτό θα συμβεί εάν ισχύουν και οι δύο ακόλουθες συνθήκες:
-
Ο εν λόγω κώδικας περιέχεται μέσα σε μια υπορουτίνη που εκτελείται αυτόματα, όπως μια Auto_Open ή Auto_Close υπορουτίνη.
-
Ο κώδικας δεν περιέχεται σε μια λειτουργική μονάδα της Visual Basic, αλλά "πίσω" από ένα φύλλο εργασίας ή το ίδιο το βιβλίο εργασίας.
Λύση
Για να λειτουργούν σωστά οι υπορουτίνες που εκτελούνται αυτόματα στο Microsoft Excel, πρέπει να περιέχονται σε μια λειτουργική μονάδα της Visual Basic.
Πρέπει να εισαγάγετε μια λειτουργική μονάδα Visual Basic στο βιβλίο εργασίας και, στη συνέχεια, να τοποθετήσετε τον κώδικα στη νέα λειτουργική μονάδα.
Για να εισαγάγετε μια λειτουργική μονάδα Της Visual Basic:
-
Στην Εξερεύνηση έργων στην Επεξεργασία της Visual Basic, ενεργοποιήστε το βιβλίο εργασίας που περιέχει τον εν λόγω κώδικα.
-
Στο μενού Εισαγωγή, κάντε κλικ στην επιλογή Λειτουργική μονάδα.
Μετά την εισαγωγή της νέας λειτουργικής μονάδας, αποκόψετε τον κώδικα από την αρχική του θέση και επικολλήστε τον στη λειτουργική μονάδα Visual Basic. Στη συνέχεια, αποθηκεύστε το βιβλίο εργασίας.
Περισσότερες πληροφορίες
Στο Excel, ο κώδικας VBA μπορεί να αποθηκευτεί σε τρεις διαφορετικές θέσεις: σε μια λειτουργική μονάδα της Visual Basic, σε μια λειτουργική μονάδα κλάσης Visual Basic και σε φύλλα εργασίας και βιβλία εργασίας "πίσω".
Για να επεξεργαστείτε κώδικα "πίσω" από ένα φύλλο εργασίας ή ένα βιβλίο εργασίας:
-
Ενεργοποίηση της Επεξεργασίας Visual Basic (πατήστε το συνδυασμό πλήκτρων ALT+F11).
-
Στο παράθυρο Εξερεύνηση έργου, θα δείτε καταχωρήσεις παρόμοιες με τις παρακάτω:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Εάν κάνετε διπλό κλικ σε ένα από τα ονόματα του φύλλου εργασίας ή σε αυτό το βιβλίο εργασίας, μπορείτε να πληκτρολογήσετε κώδικα στο παράθυρο κώδικα. Ο κώδικας αυτός δεν περιέχεται σε μια λειτουργική μονάδα Της Visual Basic θεωρείται ότι βρίσκεται "πίσω" από το φύλλο εργασίας ή
ThisWorkbook .
Εάν ένα Auto_Open, Auto_Close ή άλλη υπορουτίνη που εκτελείται αυτόματα αποθηκεύεται "πίσω" από ένα φύλλο εργασίας ή αυτό το βιβλίο εργασίας, ενδέχεται να μην λειτουργεί σωστά όταν ανοίγετε ή κλείνετε το βιβλίο εργασίας σας ή όταν εκτελείτε μια ενέργεια που θα πρέπει να έχει ως αποτέλεσμα την εκτέλεση της υπορουτίνης.