Πίνακας περιεχομένων
Σε αυτό το άρθρο, θα σας δείξουμε τους λόγους για την " Υποδείκτης εκτός εύρους " σφάλμα στο Excel VBA και πώς να τα λύσετε.
Λήψη προτύπου πρακτικής
Μπορείτε να κατεβάσετε το δωρεάν υπόδειγμα Excel από εδώ.
Σφάλμα υποδείκτη εκτός εύρους στο VBA.xlsm
Τι είναι το Σφάλμα υποδείκτη εκτός εύρους στην VBA;
VBA Δείκτης υποδιαστολής εκτός εύρους το σφάλμα εμφανίζεται όταν προσπαθούμε να προσπελάσουμε οποιοδήποτε ανύπαρκτο μέλος ή ανύπαρκτη συλλογή συστοιχιών στο Excel. Πρόκειται για ένα " Σφάλμα χρόνου εκτέλεσης 9 " τύπου σφάλματος στο VBA κωδικοποίηση στο Excel.
Το σφάλμα συνήθως μοιάζει με αυτό,
5 λόγοι με λύσεις για το σφάλμα "Subscript Out of Range" στη VBA
Σε αυτή την ενότητα θα συζητηθούν οι 5 πιο συνηθισμένοι λόγοι για την εμφάνιση των Υποδείκτης εκτός εύρους σφάλμα και ποιες είναι οι λύσεις σε αυτό.
1. Σφάλμα υποδείκτη εκτός εύρους στην VBA για ανύπαρκτο βιβλίο εργασίας
Όταν προσπαθείτε να αποκτήσετε πρόσβαση σε ένα βιβλίο εργασίας του Excel που δεν είναι ανοιχτό, θα εμφανιστεί το μήνυμα " Υποδείκτης εκτός εύρους " σφάλμα.
Αν προσπαθήσουμε να Εκτέλεση τον παραπάνω κώδικα, θα λάβουμε το σφάλμα επειδή δεν υπάρχει βιβλίο εργασίας του Excel με όνομα " Πωλήσεις " που είναι επί του παρόντος ανοικτή.
Λύση
Για να λύσετε αυτό το σφάλμα, ανοίξτε πρώτα το βιβλίο εργασίας του Excel στο οποίο θέλετε να αποκτήσετε πρόσβαση και, στη συνέχεια, εκτελέστε τη μακροεντολή.
2. Σφάλμα υποδείκτη εκτός εύρους στην VBA για ανύπαρκτο φύλλο εργασίας
Όταν προσπαθείτε να αποκτήσετε πρόσβαση σε ένα φύλλο εργασίας που δεν υπάρχει στο βιβλίο εργασίας του Excel, τότε θα λάβετε επίσης το μήνυμα " Υποδείκτης εκτός εύρους " σφάλμα στο VBA .
Αν προσπαθήσουμε να εκτελέσουμε τον κώδικα που φαίνεται παραπάνω, θα λάβουμε το σφάλμα επειδή δεν υπάρχει " Φύλλο2 " που είναι διαθέσιμο στο βιβλίο εργασίας μας.
Λύση
Για να λύσετε αυτό το σφάλμα, πρέπει να έχετε το φύλλο του Excel στο οποίο θέλετε να αποκτήσετε πρόσβαση στο τρέχον βιβλίο εργασίας και στη συνέχεια να εκτελέσετε τη μακροεντολή.
3. Σφάλμα υποδείκτη εκτός εύρους στη VBA για μη καθορισμένα στοιχεία συστοιχίας
Αν δεν ορίσετε το μήκος μιας δυναμικής συστοιχίας με τη λέξη DIM ή REDIM στο Excel VBA , τότε θα λάβετε το " Υποδείκτης εκτός εύρους " σφάλμα.
Στον παραπάνω κώδικα, δηλώσαμε το Array στη διάσταση από 5 έως 10, αλλά αναφερθήκαμε σε έναν δείκτη με δείκτη 3, ο οποίος είναι μικρότερος από το 5.
Λύση
Για να το λύσετε αυτό, δηλώστε τον δείκτη ανάμεσα στη διάσταση Array.
Αυτό το κομμάτι κώδικα λειτουργεί τέλεια, επειδή εδώ αναφερθήκαμε στον δείκτη 5, ο οποίος βρίσκεται μέσα στο εύρος 5 έως 10.
4. Σφάλμα υποδείκτη εκτός εύρους στην VBA για μη έγκυρη συλλογή/συστοιχία
Όταν ο δείκτης είναι μεγαλύτερος ή μικρότερος από το εύρος των δυνατών υποψηφίων, τότε η Υποδείκτης εκτός εύρους θα εμφανιστεί σφάλμα.
Κοιτάξτε το παραπάνω παράδειγμα, δηλώσαμε τη μεταβλητή ως Array, αλλά αντί να αναθέσουμε ένα σημείο αρχής και τέλους, αναθέσαμε απευθείας τον πρώτο πίνακα με την τιμή 20.
Λύση
Για να διορθώσουμε αυτό το πρόβλημα, πρέπει να αντιστοιχίσουμε το μήκος του πίνακα με ένα σημείο έναρξης και λήξης.
Αυτός ο κώδικας δεν δίνει κανένα σφάλμα επειδή τώρα έχουμε δηλώσει τη συστοιχία με σημείο έναρξης το 1 και σημείο λήξης το 5.
5. Σφάλμα υποδείκτη εκτός εύρους στην VBA για στενογραφικό σενάριο
Εάν χρησιμοποιήσετε μια συντομογραφία από έναν υπογράφο και αναφέρεται σε ένα μη έγκυρο στοιχείο, τότε θα λάβετε την ένδειξη " Υποδείκτης εκτός εύρους " σφάλμα στο Excel VBA Για παράδειγμα, [A2] είναι η συντομογραφία για ActiveSheet.Range(A2) .
Λύση
Για να το διορθώσετε αυτό, πρέπει να χρησιμοποιήσετε ένα έγκυρο όνομα κλειδιού και δείκτης για τη συλλογή. Αντί να γράψετε ActiveSheet.Range(A2) , μπορείτε απλά να γράψετε [ A2 ].
Πλεονέκτημα του σφάλματος του Excel Subscript Out of Range στο VBA
- VBA Δείκτης υποδιαστολής εκτός εύρους σφάλμα ή " Σφάλμα χρόνου εκτέλεσης 9 " είναι πραγματικά χρήσιμο για τον προσδιορισμό της θέσης του σφάλματος όπου συνέβη στο VBA κωδικός.
- Αυτό το σφάλμα βοηθά τους χρήστες να βρουν τον τύπο του σφάλματος, ώστε να μπορούν να ελέγξουν και να βρουν τις λύσεις ανάλογα με τον κωδικό σφάλματος.
Πράγματα που πρέπει να θυμάστε
- Καθώς αυτό το σφάλμα μεταγλωττίζει κάθε βήμα του κώδικα για να μας κατευθύνει ακριβώς σε ποιο μέρος του κώδικα πρέπει πραγματικά να αναλάβουμε δράση, έτσι είναι καλύτερα να μεταγλωττίσετε κάθε γραμμή κώδικα μία προς μία πατώντας το πλήκτρο F8 αν έχετε μια τεράστια γραμμή κώδικα.
Συμπέρασμα
Αυτό το άρθρο σας έδειξε τους λόγους και τις λύσεις του Excel Υποδείκτης εκτός εύρους σφάλμα σε VBA. Ελπίζω αυτό το άρθρο να ήταν πολύ χρήσιμο για εσάς. Μη διστάσετε να θέσετε οποιεσδήποτε ερωτήσεις σχετικά με το θέμα.