Η αναφορά σε ένα αντικείμενο στον κώδικα VBA είναι σημαντική επειδή πρέπει να προσδιορίσετε το αντικείμενο με το οποίο θέλετε να εργαστείτε στο Excel 2016. Εξάλλου, το VBA δεν μπορεί να διαβάσει το μυαλό σας — ακόμα. Φημολογείται ότι το αντικείμενο ανάγνωσης μυαλού θα εισαχθεί στο Excel 2019.
Μπορείτε να δουλέψετε με μια ολόκληρη συλλογή αντικειμένων με μια πτώση. Πιο συχνά, ωστόσο, χρειάζεται να εργαστείτε με ένα συγκεκριμένο αντικείμενο σε μια συλλογή (όπως ένα συγκεκριμένο φύλλο εργασίας σε ένα βιβλίο εργασίας). Για να αναφέρετε ένα μεμονωμένο αντικείμενο από μια συλλογή, βάζετε το όνομα του αντικειμένου ή τον αριθμό ευρετηρίου σε παρένθεση μετά το όνομα της συλλογής, ως εξής:
Φύλλα εργασίας ("Φύλλο 1")
Παρατηρήστε ότι το όνομα του φύλλου είναι σε εισαγωγικά. Εάν παραλείψετε τα εισαγωγικά, το Excel δεν θα μπορεί να αναγνωρίσει το αντικείμενο (και θα υποθέσει ότι πρόκειται για όνομα μεταβλητής).
Εάν το Φύλλο1 είναι το πρώτο (ή μοναδικό) φύλλο εργασίας στη συλλογή, μπορείτε επίσης να χρησιμοποιήσετε την ακόλουθη αναφορά:
Φύλλα εργασίας (1)
Σε αυτή την περίπτωση, ο αριθμός δεν είναι σε εισαγωγικά. Συμπέρασμα? Εάν αναφέρεστε σε ένα αντικείμενο χρησιμοποιώντας το όνομά του, χρησιμοποιήστε εισαγωγικά. Εάν αναφέρεστε σε ένα αντικείμενο χρησιμοποιώντας τον αριθμό ευρετηρίου του, χρησιμοποιήστε έναν απλό αριθμό χωρίς εισαγωγικά.
Τι γίνεται με τα φύλλα γραφημάτων; Ένα φύλλο γραφήματος περιέχει ένα ενιαίο γράφημα. Έχει μια καρτέλα φύλλου, αλλά δεν είναι φύλλο εργασίας. Λοιπόν, όπως αποδεικνύεται, το μοντέλο αντικειμένου έχει μια συλλογή που ονομάζεται Charts. Αυτή η συλλογή περιέχει όλα τα αντικείμενα του φύλλου γραφήματος σε ένα βιβλίο εργασίας (και δεν περιλαμβάνει γραφήματα ενσωματωμένα σε ένα φύλλο εργασίας).
Και για να διατηρηθούν τα πράγματα λογικά, υπάρχει μια άλλη συλλογή που ονομάζεται Φύλλα. Η συλλογή Φύλλα περιέχει όλα τα φύλλα (φύλλα εργασίας και φύλλα γραφημάτων) σε ένα βιβλίο εργασίας. Η συλλογή Φύλλα είναι χρήσιμη εάν θέλετε να εργαστείτε με όλα τα φύλλα ενός βιβλίου εργασίας και δεν σας ενδιαφέρει αν είναι φύλλα εργασίας ή φύλλα γραφημάτων.
Έτσι, ένα μεμονωμένο φύλλο εργασίας που ονομάζεται Sheet1 είναι μέλος δύο συλλογών: της συλλογής Φύλλων εργασίας και της συλλογής Φύλλων. Μπορείτε να ανατρέξετε σε αυτό με έναν από τους δύο τρόπους:
Φύλλα εργασίας ("Φύλλο 1")
Φύλλα ("Φύλλο1")
Πλοήγηση στην ιεραρχία
Εάν θέλετε να εργαστείτε με αντικείμενα του Excel, όλα βρίσκονται κάτω από το αντικείμενο Εφαρμογή. Ξεκινήστε λοιπόν πληκτρολογώντας Application .
Κάθε άλλο αντικείμενο στο μοντέλο αντικειμένου του Excel βρίσκεται κάτω από το αντικείμενο Εφαρμογή. Μπορείτε να φτάσετε σε αυτά τα αντικείμενα μετακινώντας προς τα κάτω στην ιεραρχία και συνδέοντας κάθε αντικείμενο στο δρόμο σας με τον τελεστή κουκκίδας (.). Για να μεταβείτε στο αντικείμενο Βιβλίο εργασίας που ονομάζεται Book1.xlsx, ξεκινήστε με το αντικείμενο Εφαρμογή και μεταβείτε στο αντικείμενο συλλογής Βιβλία εργασίας:
Application.Workbooks ("Book1.xlsx")
Για να πλοηγηθείτε πιο μακριά σε ένα συγκεκριμένο φύλλο εργασίας, προσθέστε έναν τελεστή κουκκίδας και αποκτήστε πρόσβαση στο αντικείμενο συλλογής φύλλων εργασίας:
Application.Workbooks(“Book1.xlsx”).Φύλλα εργασίας(1)
Δεν είναι αρκετά μακριά ακόμα; Εάν θέλετε πραγματικά να λάβετε την τιμή από το κελί A1 στο πρώτο φύλλο εργασίας του βιβλίου εργασίας που ονομάζεται Book1.xlsx, πρέπει να πλοηγηθείτε σε ένα ακόμη επίπεδο στο αντικείμενο Range:
Εφαρμογή.Τετράδια εργασίας("Book1.xlsx").Φύλλα εργασίας(1).Εύρος("A1").Τιμή
Όταν αναφέρεστε σε ένα αντικείμενο Range με αυτόν τον τρόπο, ονομάζεται πλήρως αναγνωρισμένη αναφορά. Έχετε πει στο Excel ακριβώς ποια περιοχή θέλετε, σε ποιο φύλλο εργασίας και σε ποιο βιβλίο εργασίας, και δεν έχετε αφήσει τίποτα στη φαντασία. Η φαντασία είναι καλή στους ανθρώπους αλλά όχι τόσο καλή στα προγράμματα υπολογιστών.
Παρεμπιπτόντως, τα ονόματα των βιβλίων εργασίας έχουν επίσης μια κουκκίδα για να διαχωρίσουν το όνομα αρχείου από την επέκταση (για παράδειγμα, Book1.xlsx). Αυτό είναι απλώς μια σύμπτωση. Η τελεία σε ένα όνομα αρχείου δεν έχει καμία απολύτως σχέση με τον τελεστή κουκκίδας.
Απλοποίηση αναφορών αντικειμένων
Εάν σας ζητούσαν να πληροίτε τις προϋποθέσεις για κάθε αναφορά αντικειμένου που κάνετε, ο κώδικάς σας θα ήταν αρκετά μεγάλος και μπορεί να ήταν πιο δύσκολο να διαβαστεί. Ευτυχώς, το Excel σάς παρέχει ορισμένες συντομεύσεις που μπορούν να βελτιώσουν την αναγνωσιμότητα (και να σας εξοικονομήσουν λίγη πληκτρολόγηση). Για αρχή, το αντικείμενο Application θεωρείται πάντα. Υπάρχουν μόνο λίγες περιπτώσεις που έχει νόημα να το πληκτρολογήσετε. Η παράλειψη της αναφοράς αντικειμένου εφαρμογής συντομεύει το παράδειγμα σε
Τετράδια εργασίας ("Book1.xlsx"). Φύλλα εργασίας (1). Εύρος ("A1"). Τιμή
Αυτή είναι μια πολύ καλή βελτίωση. Αλλά περιμένετε, υπάρχουν περισσότερα. Εάν είστε βέβαιοι ότι το Book1.xlsx είναι το ενεργό βιβλίο εργασίας, μπορείτε να παραλείψετε και αυτήν την αναφορά. Τώρα είστε κάτω στο
Φύλλα εργασίας(1).Εύρος(“A1”).Τιμή
Τώρα φτάνεις κάπου. Έχετε μαντέψει την επόμενη συντόμευση; Σωστά. Εάν γνωρίζετε ότι το πρώτο φύλλο εργασίας είναι το τρέχον ενεργό φύλλο εργασίας, το Excel υποθέτει αυτήν την αναφορά και σας επιτρέπει απλώς να πληκτρολογήσετε
Εύρος (“A1”).Τιμή
Σε αντίθεση με ό,τι πιστεύουν ορισμένοι, το Excel δεν έχει αντικείμενο Cell. Ένα κελί είναι απλώς ένα αντικείμενο Εύρους που αποτελείται από ένα μόνο στοιχείο.
Οι συντομεύσεις που περιγράφονται εδώ είναι εξαιρετικές, αλλά μπορεί επίσης να είναι επικίνδυνες. Τι γίνεται αν πιστεύετε ότι το Book1.xlsx είναι μόνο το ενεργό βιβλίο εργασίας; Θα μπορούσατε να λάβετε ένα σφάλμα ή χειρότερα, θα μπορούσατε να λάβετε τη λάθος τιμή και να μην συνειδητοποιήσετε καν ότι είναι λάθος. Για αυτόν τον λόγο, είναι συχνά καλύτερο να προσδιορίσετε πλήρως τις αναφορές αντικειμένων σας.
Η δομή With-End With σάς βοηθά να προσδιορίσετε πλήρως τις αναφορές σας, αλλά βοηθά επίσης να κάνετε τον κώδικα πιο ευανάγνωστο και μειώνει την πληκτρολόγηση. Το καλύτερο και των δύο κόσμων!