Απαιτείται αντικείμενο VBA | Πώς να επιδιορθώσετε το απαιτούμενο σφάλμα σφάλματος στο Excel VBA;
Απαιτείται αντικείμενο στο Excel VBA
Τα λάθη αποτελούν αναπόσπαστο μέρος της γλώσσας κωδικοποίησης, αλλά η πραγματική ιδιοφυΐα έγκειται στην εύρεση του σφάλματος και στην επιδιόρθωση αυτών των λαθών. Το πρώτο βήμα για τη διόρθωση αυτών των σφαλμάτων είναι η ευφυΐα να βρείτε γιατί συμβαίνουν αυτά τα σφάλματα. Εάν μπορείτε να βρείτε γιατί αυτά τα λάθη έρχονται, τότε είναι πολύ εύκολο να διορθώσετε αυτά τα σφάλματα χωρίς να ξεφύγετε από τον ιδρώτα. Ένα τέτοιο σφάλμα στην κωδικοποίηση VBA είναι το "Object Required".
Αν θυμάστε κατά την εκμάθηση μεταβλητών και την εκχώρηση τύπων δεδομένων σε αυτές τις μεταβλητές, έχουμε επίσης τύπους δεδομένων "Αντικειμένου". Όταν ο τύπος δεδομένων αντικειμένου έχει εκχωρηθεί και εάν το αντικείμενο δεν υπάρχει στο φύλλο εργασίας ή στο βιβλίο εργασίας που αναφέρουμε, θα λάβουμε το μήνυμα σφάλματος VBA ως "Αντικείμενο Απαιτούμενο" . Έτσι, ως νέος κωδικοποιητής, είναι σύνηθες να δηλώνετε πανικό σε αυτές τις καταστάσεις, επειδή στο αρχικό επίπεδο ο αρχάριος δεν μπορεί να βρει την αιτία για αυτό το σφάλμα.
Γιατί παρουσιάζεται το απαιτούμενο σφάλμα σφάλματος; (και… Πώς μπορεί να διορθωθεί;)
Εντάξει, χρειάζονται δύο ή τρία παραδείγματα για να κατανοήσουμε πραγματικά γιατί συμβαίνει αυτό το σφάλμα και πώς να το διορθώσετε.
Μπορείτε να πραγματοποιήσετε λήψη αυτού του προτύπου Excel που απαιτείται αντικείμενο VBA εδώ - Πρότυπο Excel που απαιτείται αντικείμενο VBAΓια παράδειγμα δείτε τον παρακάτω κώδικα.
Κώδικας:
Sub Last_Row () Dim Wb As Workbook Dim Ws As Worksheet Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub
Επιτρέψτε μου να σας εξηγήσω τον παραπάνω κωδικό για εσάς.
Έχω δηλώσει τρεις μεταβλητές και οι πρώτες δύο μεταβλητές αναφέρονται στα αντικείμενα "Βιβλίο εργασίας" και "Φύλλο εργασίας". Η τρίτη μεταβλητή αναφέρεται στον τύπο δεδομένων "Ημερομηνία".
Όταν οι τύποι δεδομένων "Αντικείμενο" έχουν αντιστοιχιστεί στη μεταβλητή, πρέπει να χρησιμοποιήσουμε τη λέξη κλειδί "Set" για να αντιστοιχίσουμε την αναφορά του αντικειμένου στη μεταβλητή, οπότε στις επόμενες δύο γραμμές χρησιμοποιώντας τη λέξη-κλειδί "Set" αναφορά του "ThisWorkbook" στη μεταβλητή "Wb" επειδή αυτή η μεταβλητή διατηρεί τον τύπο δεδομένων αντικειμένου ως "Βιβλίο εργασίας" και για τη μεταβλητή "Ws" έχω εκχωρήσει το αντικείμενο φύλλου εργασίας του φύλλου εργασίας "Δεδομένα" σε αυτό το βιβλίο εργασίας.
Ορισμός Wb = ThisWorkbook
Ορισμός Ws = ThisWorkbook.Worksheets ("Δεδομένα")
- Στην επόμενη γραμμή για τη μεταβλητή τύπου δεδομένων "Ημερομηνία" επίσης έχω χρησιμοποιήσει τη λέξη-κλειδί "Ορισμός" για να εκχωρήσω την τιμή της τιμής κελιού A1 σε αυτό το βιβλίο εργασίας (Wb) και στο φύλλο εργασίας "Δεδομένα" (Ws).
Ορισμός MyToday = Wb.Ws.Cells (1, 1)
- Στην επόμενη γραμμή, δείχνουμε την τιμή της μεταβλητής τιμής "MyDate" της τιμής κελιού A1 στο πλαίσιο μηνύματος στο VBA.
MsgBox MyToday
- Εντάξει, ας τρέξουμε αυτόν τον κώδικα και να δούμε τι έχουμε ως αποτέλεσμα.
Όπως βλέπετε παραπάνω, εμφανίζεται το μήνυμα σφάλματος VBA ως "Object Required" . Εντάξει, ήρθε η ώρα να εξετάσουμε γιατί λαμβάνουμε αυτό το μήνυμα σφάλματος.
- Στην παραπάνω εικόνα μηνύματος σφάλματος στην ενότητα κώδικα, ενώ εμφανίζεται το μήνυμα σφάλματος, έχει επισημανθεί το τμήμα σφάλματος του κώδικα με μπλε χρώμα.
- Έτσι, το ερώτημα παραμένει είναι γιατί λάβαμε αυτό το σφάλμα Το πρώτο πράγμα που πρέπει να δούμε είναι αυτός ο συγκεκριμένος τύπος δεδομένων μεταβλητής. Επιστρέψτε στην προηγούμενη γραμμή κώδικα όπου έχουμε εκχωρήσει τον τύπο δεδομένων στη μεταβλητή "MyDate".
- Έχουμε εκχωρήσει τον τύπο δεδομένων μεταβλητής ως "Ημερομηνία" και τώρα επιστρέφουμε στη γραμμή σφάλματος τώρα.
Σε αυτήν τη γραμμή, χρησιμοποιήσαμε τη λέξη-κλειδί "Σύνολο" ενώ ο τύπος δεδομένων μας δεν είναι ο τύπος δεδομένων "Αντικείμενο". Έτσι, τη στιγμή που ο κώδικας VBA βλέπει τη λέξη-κλειδί "Set", υποθέτει ότι είναι ένας τύπος δεδομένων αντικειμένου και λέει ότι απαιτεί αναφορά αντικειμένου.
Έτσι, η κατώτατη γραμμή είναι "Ορισμός" λέξη-κλειδί χρησιμοποιείται για αναφορά μόνο για την αναφορά των μεταβλητών αντικειμένων όπως Φύλλο εργασίας, Βιβλίο εργασίας κ.λπ.
Παράδειγμα # 1
Τώρα ρίξτε μια ματιά στον παρακάτω κώδικα.
Κώδικας:
Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub
Στον παραπάνω κώδικα, χρησιμοποιήσαμε τη συνάρτηση φύλλου εργασίας "SUM" για να πάρουμε το σύνολο των τιμών κελιών από A1 έως A100. Όταν εκτελείτε αυτόν τον κωδικό, θα συναντήσουμε παρακάτω το σφάλμα.
Ωχ !! Λέει "Σφάλμα χρόνου εκτέλεσης" 424 ": Απαιτείται αντικείμενο.
Τώρα ας δούμε τον κώδικα τώρα.
Αντί να χρησιμοποιήσουμε το "Application", χρησιμοποιήσαμε κατά λάθος το "Application1", οπότε αυτό αντιμετώπισε το σφάλμα "Object Required" στον κώδικα VBA.
Εάν η λέξη "Option Explicit" είναι ενεργοποιημένη, θα λάβουμε το σφάλμα "Variable Not Defined".
Πράγματα που πρέπει να θυμάστε
- Απαιτούμενο αντικείμενο σημαίνει ότι η αναφορά τύπου δεδομένων αντικειμένου πρέπει να είναι ακριβής.
- Όταν η επιλογή ρητής λέξης δεν είναι ενεργοποιημένη στην κωδικοποίηση, θα λάβουμε λάθος Απαιτούμενο αντικείμενο για ορθογραφικά μεταβλητές λέξεις και εάν το Option Explicit είναι ενεργοποιημένο, θα λάβουμε τη μεταβλητή που δεν έχει καθοριστεί σφάλμα για ορθογραφικά μεταβλητές λέξεις