Ο κώδικας VBA "πίσω από" ένα φύλλο εργασίας ή ένα βιβλίο εργασίας ενδέχεται να μην λειτουργεί στο Excel


Για μια έκδοση αυτού του άρθρου που αφορά το Microsoft Excel 97, ανατρέξτε στο θέμα 157346 .Για μια έκδοση αυτού του άρθρου που αφορά το Microsoft Excel 98, ανατρέξτε στο θέμα 182482 .

Συμπτώματα


Στο Microsoft Office Excel, ο κώδικας μακροεντολών της Microsoft Visual Basic for Application (VBA) που περιέχεται "πίσω από" ένα φύλλο εργασίας ή ένα βιβλίο εργασίας ενδέχεται να μην λειτουργεί σωστά.

Αιτία


Αυτό θα συμβεί εάν ισχύουν και οι δύο ακόλουθες συνθήκες:
  • Ο εν λόγω Κωδικός περιέχεται μέσα σε μια υπορουτίνα που εκτελείται αυτόματα, όπως μια Auto_Open ή Auto_Close υπορουτίνα.
  • Ο κώδικας δεν περιέχεται σε μια λειτουργική μονάδα της Visual Basic, αλλά "πίσω από" ένα φύλλο εργασίας ή το ίδιο το βιβλίο εργασίας.

Λύση


Για να λειτουργούν σωστά οι υπορουτίνες για αυτόματη εκτέλεση στο Microsoft Excel, πρέπει να περιέχονται σε μια λειτουργική μονάδα της Visual Basic. Πρέπει να εισαγάγετε μια λειτουργική μονάδα της Visual Basic στο βιβλίο εργασίας και, στη συνέχεια, να τοποθετήσετε τον κώδικα στη νέα λειτουργική μονάδα. Για να εισαγάγετε μια λειτουργική μονάδα της Visual Basic:
  1. Στην Εξερεύνηση του Project στην επεξεργασία της Visual Basic, ενεργοποιήστε το βιβλίο εργασίας που περιέχει τον συγκεκριμένο κωδικό.
  2. Στο μενού Εισαγωγή , κάντε κλικ στην επιλογή λειτουργική μονάδα.
Μετά την εισαγωγή της νέας λειτουργικής μονάδας, κόψτε τον κώδικα από την αρχική του θέση και επικολλήστε τον στη λειτουργική μονάδα της Visual Basic. Στη συνέχεια, αποθηκεύστε το βιβλίο εργασίας.

Περισσότερες πληροφορίες


Στο Excel, ο κώδικας VBA μπορεί να αποθηκευτεί σε τρεις διαφορετικές θέσεις: σε μια λειτουργική μονάδα της Visual Basic, σε μια λειτουργική μονάδα κλάσης της Visual Basic και "πίσω από" φύλλα εργασίας και βιβλία εργασίας. Για να επεξεργαστείτε τον κώδικα "πίσω από" ένα φύλλο εργασίας ή ένα βιβλίο εργασίας:
  1. Ενεργοποίηση της επεξεργασίας της Visual Basic (πατήστε το συνδυασμό πλήκτρων ALT + F11).
  2. Στο παράθυρο του Project Explorer , θα δείτε καταχωρήσεις παρόμοιες με τις εξής:
         VBAProject (Book1)         Microsoft Excel Objects            Sheet1 (Sheet1)            Sheet2 (Sheet2)            Sheet3 (Sheet3)            ThisWorkbook                  Modules             Module1 
Εάν κάνετε διπλό κλικ σε ένα από τα ονόματα του φύλλου εργασίας ή στο αυτό, μπορείτε να πληκτρολογήσετε τον κωδικό στο παράθυρο κώδικα. Ένας τέτοιος κωδικός που δεν περιέχεται μέσα σε μια λειτουργική μονάδα της Visual Basic θεωρείται ότι είναι "πίσω από" το φύλλο εργασίας ή τοαυτό . Εάν μια Auto_Open, Auto_Closeή άλλη υπορουτίνα που εκτελείται αυτόματα είναι αποθηκευμένη "πίσω από" ένα φύλλο εργασίας ή αυτό, ενδέχεται να μην λειτουργεί σωστά όταν ανοίγετε ή κλείνετε το βιβλίο εργασίας σας ή όταν εκτελείτε μια ενέργεια που θα πρέπει να προκαλέσει την εκτέλεση της υπορουτίνας.