Σφάλμα σύνταξης VBA

Αυτό το σεμινάριο θα εξηγήσει τι σημαίνει ένα σφάλμα μεταγλώττισης VBA και πώς εμφανίζεται.

Πριν από την εκτέλεση του κωδικού σας, ο επεξεργαστής VBA μεταγλωττίζει τον κώδικα. Αυτό σημαίνει βασικά ότι η VBA εξετάζει τον κώδικά σας για να βεβαιωθεί ότι υπάρχουν όλες οι απαιτήσεις για τη σωστή εκτέλεσή του - θα ελέγξει ότι όλες οι μεταβλητές έχουν δηλωθεί (εάν χρησιμοποιείτε το Option Explicit που πρέπει!), Ελέγξτε ότι όλες οι διαδικασίες έχουν δηλωθεί , ελέγξτε τους βρόχους και αν δηλώσεις κ.λπ. Με τη σύνταξη του κώδικα, το VBA βοηθά στην ελαχιστοποίηση τυχόν σφαλμάτων χρόνου εκτέλεσης που συμβαίνουν.

(Ανατρέξτε στον Οδηγό χειρισμού σφαλμάτων για περισσότερες πληροφορίες σχετικά με τα Σφάλματα VBA)

Αδήλωτες μεταβλητές

Εάν δεν δηλώσετε μεταβλητές, αλλά το Option Explicit είναι ενεργοποιημένο στο επάνω μέρος της μονάδας σας και, στη συνέχεια, εκτελέσετε τη μακροεντολή, θα εμφανιστεί σφάλμα μεταγλώττισης.

Εάν κάνετε κλικ στο OK, η σχετική διαδικασία θα μεταβεί σε λειτουργία εντοπισμού σφαλμάτων.

Εναλλακτικά, προτού εκτελέσετε τον κώδικά σας, μπορείτε να αναγκάσετε μια συλλογή του κώδικα.

Στο Μενού, επιλέξτε Debug> Compile Project.

Ο μεταγλωττιστής θα βρει τυχόν σφάλματα μεταγλώττισης και θα επισημάνει το πρώτο που θα βρει ανάλογα.

Αδήλωτες Διαδικασίες

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

Για παράδειγμα:

1234 Sub CallProcedure ()«Κάποιος κώδικας εδώΚαλέστε το NextProcedureΤέλος υπο

Ωστόσο, εάν η διαδικασία - Επόμενη Διαδικασία δεν υπάρχει, τότε θα προκύψει σφάλμα μεταγλώττισης.

Λανθασμένη κωδικοποίηση - Αναμενόμενο τέλος της δήλωσης

Εάν δημιουργήσετε ένα βρόχο χρησιμοποιώντας Για… Κάθε… Επόμενο ή Με… Τέλος Με και ξεχάστε να και το Επόμενο ή το Τέλος με… Θα λάβετε επίσης ένα σφάλμα μεταγλώττισης.

123456 Sub CompileError ()Dim wb Ως βιβλίο εργασίαςDim ws Ως φύλλο εργασίαςΓια κάθε ws Σε wbMsgBox ws.NameΤέλος υπο

Το ίδιο θα συμβεί με μια δήλωση If εάν παραλειφθεί το End If!

Αναφορές που λείπουν

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

Αυτό μπορεί να λυθεί είτε με καθυστερημένη δέσμευση - δηλώνοντας ότι οι μεταβλητές είναι αντικείμενα. ή με την προσθήκη του σχετικού Βιβλιοθήκη αντικειμένων στο Έργο.

Στο Μενού, επιλέξτε Εργαλεία> Αναφορές και προσθέστε τη σχετική βιβλιοθήκη αντικειμένων στο έργο σας.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave