Μια δήλωση ανάθεσης είναι μια δήλωση VBA που εκχωρεί το αποτέλεσμα μιας έκφρασης σε μια μεταβλητή ή ένα αντικείμενο. Το σύστημα βοήθειας του Excel ορίζει τον όρο έκφραση ως
«… ένας συνδυασμός λέξεων-κλειδιών, τελεστών, μεταβλητών και σταθερών που παράγει μια συμβολοσειρά, αριθμό ή αντικείμενο. Μια έκφραση μπορεί να χρησιμοποιηθεί για να εκτελέσει έναν υπολογισμό, να χειριστεί χαρακτήρες ή να δοκιμάσει δεδομένα."
Μεγάλο μέρος της δουλειάς σας στο VBA περιλαμβάνει την ανάπτυξη (και τον εντοπισμό σφαλμάτων) εκφράσεων. Εάν γνωρίζετε πώς να δημιουργείτε τύπους στο Excel, δεν θα έχετε πρόβλημα να δημιουργήσετε εκφράσεις. Με έναν τύπο φύλλου εργασίας, το Excel εμφανίζει το αποτέλεσμα σε ένα κελί. Μια έκφραση VBA, από την άλλη πλευρά, μπορεί να αντιστοιχιστεί σε μια μεταβλητή.
Παραδείγματα δήλωσης εργασίας
Στα παραδείγματα της δήλωσης ανάθεσης που ακολουθούν, οι εκφράσεις βρίσκονται στα δεξιά του πρόσημου ίσου:
x = 1
x = x + 1
x = (y * 2) / (z * 2)
Κόστος σπιτιού = 375000
FileOpen = Αληθινό
Εύρος ("TheYear"). Τιμή = 2016
Οι εκφράσεις μπορεί να είναι τόσο περίπλοκες όσο τις χρειάζεστε. χρησιμοποιήστε τον χαρακτήρα συνέχισης γραμμής (ένα κενό ακολουθούμενο από μια υπογράμμιση) για να κάνετε πιο ευανάγνωστες εκτενείς εκφράσεις.
Συχνά, οι εκφράσεις χρησιμοποιούν συναρτήσεις: ενσωματωμένες συναρτήσεις του VBA, συναρτήσεις φύλλου εργασίας του Excel ή συναρτήσεις που αναπτύσσετε με το VBA.
Σχετικά με αυτό το σύμβολο της ισότητας
Όπως μπορείτε να δείτε στο προηγούμενο παράδειγμα, η VBA χρησιμοποιεί το σύμβολο ίσου ως τελεστή εκχώρησης. Πιθανότατα έχετε συνηθίσει να χρησιμοποιείτε το σύμβολο ίσου ως μαθηματικό σύμβολο για την ισότητα. Επομένως, μια δήλωση ανάθεσης όπως η παρακάτω μπορεί να σας κάνει να ανασηκώσετε τα φρύδια σας:
z = z + 1
Σε ποιο τρελό σύμπαν το z είναι ίσο με τον εαυτό του συν 1; Απάντηση: Δεν υπάρχει γνωστό σύμπαν. Σε αυτήν την περίπτωση, η δήλωση ανάθεσης (όταν εκτελείται) αυξάνει την τιμή του z κατά 1. Επομένως, εάν το z είναι 12, η εκτέλεση της εντολής κάνει z ίσο με 13. Απλώς θυμηθείτε ότι μια ανάθεση χρησιμοποιεί το σύμβολο ίσου ως τελεστή και όχι σύμβολο της ισότητας.
Ομαλοί χειριστές
Οι χειριστές παίζουν σημαντικό ρόλο στο VBA. Εκτός από τον τελεστή ίσου, η VBA παρέχει αρκετούς τελεστές. Αυτά θα πρέπει να σας είναι γνωστά επειδή είναι οι ίδιοι τελεστές που χρησιμοποιούνται σε τύπους φύλλων εργασίας (εκτός από τον τελεστή Mod).
Λειτουργία |
Σύμβολο χειριστή |
Πρόσθεση |
+ |
Πολλαπλασιασμός |
* |
Διαίρεση |
/ |
Αφαίρεση |
– |
Εκθεσιμότητα |
^ |
Σύνδεση χορδών |
& |
Διαίρεση ακέραιου αριθμού (το αποτέλεσμα είναι πάντα ακέραιος) |
|
Αριθμητική μονάδα (επιστρέφει το υπόλοιπο μιας
πράξης διαίρεσης ) |
Mod |
Όταν γράφετε έναν τύπο Excel, εκτελείτε αριθμητική μονάδα χρησιμοποιώντας τη συνάρτηση MOD. Για παράδειγμα, ο ακόλουθος τύπος επιστρέφει 2 (το υπόλοιπο όταν διαιρέσετε το 12 με το 5):
=MOD(12,5)
Στο VBA, ο τελεστής Mod χρησιμοποιείται ως εξής (και το z έχει τιμή 2):
z = 12 Mod 5
Ο όρος συνένωση είναι ο προγραμματιστής που μιλάει για "ενώνουμε μαζί". Έτσι, εάν συνδυάσετε χορδές, συνδυάζετε χορδές για να δημιουργήσετε μια νέα και βελτιωμένη συμβολοσειρά.
Η VBA παρέχει επίσης ένα πλήρες σύνολο λογικών τελεστών. Από αυτά, τα Not, And, και Or χρησιμοποιούνται πιο συχνά.
Χειριστής |
Τι κάνει |
Δεν |
Εκτελεί μια λογική άρνηση σε μια έκφραση |
Και |
Εκτελεί έναν λογικό σύνδεσμο σε δύο εκφράσεις |
Ή |
Εκτελεί έναν λογικό διαχωρισμό σε δύο εκφράσεις |
Xor |
Εκτελεί μια λογική εξαίρεση σε δύο εκφράσεις |
Eqv |
Εκτελεί μια λογική ισοδυναμία σε δύο παραστάσεις |
Διαβολάκι |
Εκτελεί μια λογική συνέπεια σε δύο εκφράσεις |
Η σειρά προτεραιότητας για τους τελεστές στο VBA είναι ακριβώς η ίδια όπως και στους τύπους του Excel. Η εκτίμηση έχει την υψηλότερη προτεραιότητα. Ακολουθούν ο πολλαπλασιασμός και η διαίρεση και ακολουθούν η πρόσθεση και η αφαίρεση. Μπορείτε να χρησιμοποιήσετε παρενθέσεις για να αλλάξετε τη φυσική σειρά προτεραιότητας, κάνοντας ό,τι είναι τοποθετημένο σε παρένθεση να εμφανίζεται πριν από οποιονδήποτε τελεστή. Ρίξτε μια ματιά σε αυτόν τον κωδικό:
x = 3
y = 2
z = x + 5 * y
Όταν εκτελείται ο προηγούμενος κώδικας, ποια είναι η τιμή του z; Εάν απαντήσατε 13, παίρνετε ένα χρυσό αστέρι που αποδεικνύει ότι κατανοείτε την έννοια της προτεραιότητας τελεστή. Εάν απαντήσατε 16, διαβάστε το εξής: Η λειτουργία πολλαπλασιασμού (5 * y) εκτελείται πρώτα και αυτό το αποτέλεσμα προστίθεται στο x.
Πολλοί προγραμματιστές τείνουν να χρησιμοποιούν παρενθέσεις ακόμα και όταν δεν απαιτούνται. Για παράδειγμα, στην πραγματική ζωή αυτή η τελευταία δήλωση ανάθεσης θα μπορούσε να γραφτεί ως εξής:
z = x + (5 * y)
Μην ντρέπεστε να χρησιμοποιήσετε παρενθέσεις ακόμα κι αν δεν είναι απαραίτητες — ειδικά αν κάτι τέτοιο κάνει τον κώδικά σας πιο κατανοητό. Η VBA δεν ενδιαφέρεται αν χρησιμοποιείτε επιπλέον παρενθέσεις.