Απαιτείται αντικείμενο VBA - Πώς να επιδιορθώσετε το απαιτούμενο σφάλμα σφάλματος στο Excel VBA;

Πίνακας περιεχομένων

Απαιτείται αντικείμενο στο Excel VBA

Τα λάθη αποτελούν αναπόσπαστο μέρος της γλώσσας κωδικοποίησης, αλλά η πραγματική ιδιοφυΐα έγκειται στην εύρεση του σφάλματος και στη διόρθωση αυτών των λαθών. Το πρώτο βήμα για τη διόρθωση αυτών των σφαλμάτων είναι η ευφυΐα να βρει γιατί συμβαίνουν αυτά τα σφάλματα. Εάν μπορείτε να βρείτε γιατί έρχονται αυτά τα σφάλματα, τότε είναι πολύ εύκολο να διορθώσετε αυτά τα σφάλματα χωρίς να ξεσπάσετε. Ένα τέτοιο σφάλμα στην κωδικοποίηση VBA είναι το "Object Required".

Αν θυμάστε, ενώ μαθαίνετε μεταβλητές και αντιστοιχίζετε τύπους δεδομένων σε αυτές τις μεταβλητές, έχουμε επίσης τύπους δεδομένων «Αντικειμένου». Όταν ο τύπος δεδομένων αντικειμένου έχει αντιστοιχιστεί και εάν αυτό το αντικείμενο δεν υπάρχει στο φύλλο εργασίας ή στο βιβλίο εργασίας που αναφερόμαστε στη μετάβαση, τότε θα λάβουμε το μήνυμα σφάλματος 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

Επιτρέψτε μου να σας εξηγήσω τον παραπάνω κωδικό για εσάς.

Έχω δηλώσει τρεις μεταβλητές, και οι πρώτες δύο μεταβλητές αναφέρονται στα αντικείμενα "Βιβλίο εργασίας" και "Φύλλο εργασίας". Η τρίτη μεταβλητή αναφέρεται στον τύπο δεδομένων "Ημερομηνία".

Όταν οι τύποι δεδομένων "Object" αντιστοιχίζονται στη μεταβλητή, πρέπει να χρησιμοποιήσουμε τη λέξη "Set" για να αντιστοιχίσουμε την αναφορά του αντικειμένου στη μεταβλητή, οπότε στις επόμενες δύο γραμμές, χρησιμοποιώντας τη λέξη-κλειδί "Set", I έχω εκχωρήσει την αναφορά του "ThisWorkbook" στη μεταβλητή "Wb" επειδή αυτή η μεταβλητή διατηρεί τον τύπο δεδομένων αντικειμένου ως "Βιβλίο εργασίας" και για τη μεταβλητή "Ws" έχω εκχωρήσει το αντικείμενο φύλλου εργασίας του φύλλου εργασίας "Δεδομένα" σε αυτό το βιβλίο εργασίας.

Ορισμός Wb = ThisWorkbook
Ορισμός Ws = ThisWorkbook.Worksheets ("Δεδομένα")
  • Στην επόμενη γραμμή για τη μεταβλητή τύπου δεδομένων "Ημερομηνία" επίσης έχω χρησιμοποιήσει τη λέξη-κλειδί "Ορισμός" για να εκχωρήσω την τιμή της τιμής κελιού A1 σε αυτό το βιβλίο εργασίας (Wb) και στο φύλλο εργασίας "Δεδομένα" (Ws).
Ορισμός MyToday = Wb.Ws.Cells (1, 1)
  • Στην επόμενη γραμμή, δείχνουμε την τιμή της μεταβλητής τιμής "MyDate" της τιμής κελιού A1 στο πλαίσιο μηνύματος στο VBA.
MsgBox MyToday
  • Εντάξει, ας τρέξουμε αυτόν τον κώδικα και να δούμε τι έχουμε ως αποτέλεσμα.

Όπως μπορείτε να δείτε παραπάνω, δείχνει το μήνυμα σφάλματος VBA ως "Απαιτούμενο αντικείμενο". Εντάξει, ήρθε η ώρα να εξετάσουμε γιατί λαμβάνουμε αυτό το μήνυμα σφάλματος.

  • Στην παραπάνω εικόνα μηνύματος σφάλματος στην ενότητα κώδικα, ενώ δείχνει το μήνυμα σφάλματος, έχει επισημάνει το τμήμα σφάλματος του κώδικα με μπλε χρώμα.
  • Έτσι, το ερώτημα παραμένει είναι γιατί λάβαμε αυτό το σφάλμα. Το πρώτο πράγμα που πρέπει να δούμε είναι αυτός ο συγκεκριμένος τύπος δεδομένων μεταβλητής. Επιστρέψτε στην προηγούμενη γραμμή κώδικα όπου έχουμε εκχωρήσει τον τύπο δεδομένων στη μεταβλητή "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", θα εμφανιστεί το σφάλμα "Μεταβλητή που δεν καθορίζεται".

Πράγματα που πρέπει να θυμάστε

  • Απαιτούμενο αντικείμενο σημαίνει ότι η αναφορά τύπου δεδομένων αντικειμένου πρέπει να είναι ακριβής.
  • Όταν η επιλογή ρητής λέξης δεν είναι ενεργοποιημένη στην κωδικοποίηση, τότε θα λάβουμε λάθος Απαιτούμενο αντικείμενο για ορθογραφικά μεταβλητές λέξεις και εάν το Option Explicit είναι ενεργοποιημένο, θα λάβουμε τη μεταβλητή που δεν ορίζεται σφάλμα για ορθογραφικά μεταβλητές λέξεις

ενδιαφέροντα άρθρα...