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

Μαθηματικοί τελεστές

Οι κύριοι μαθηματικοί τελεστές VBA παρατίθενται στον παρακάτω πίνακα.

Η δεξιά στήλη του πίνακα δείχνει την προεπιλεγμένη προτεραιότητα τελεστή απουσία παρενθέσεων. Προσθέτοντας παρενθέσεις σε μια παράσταση, μπορείτε να αλλάξετε τη σειρά με την οποία εκτελούνται οι εντολές VBA όπως θέλετε.

Χειριστές χορδών

Ο βασικός τελεστής συμβολοσειράς στο Excel VBA είναι ο τελεστής συνένωσης & (συγχώνευση):

Χειριστές σύγκρισης

Οι τελεστές σύγκρισης χρησιμοποιούνται για τη σύγκριση δύο αριθμών ή συμβολοσειρών και την επιστροφή booleanτύπος Boolean(Σωστό ή λάθος). Οι κύριοι τελεστές σύγκρισης του Excel VBA παρατίθενται σε αυτόν τον πίνακα:

Λογικοί τελεστές

Οι λογικοί τελεστές, όπως και οι τελεστές σύγκρισης, επιστρέφουν μια boolean τιμή τύπου Boolean(Σωστό ή λάθος). Κύριος λογικούς τελεστέςΤο Excel VBA παρατίθεται στον παρακάτω πίνακα:

Ο παραπάνω πίνακας δεν παραθέτει όλους τους λογικούς τελεστές που είναι διαθέσιμοι στο VBA. Πλήρης λίσταλογικοί τελεστές μπορούν να βρεθούν στον ιστότοπο του Κέντρου προγραμματιστών της Visual Basic.

Ενσωματωμένες Λειτουργίες

Υπάρχουν πολλές ενσωματωμένες λειτουργίες διαθέσιμες στο VBA που μπορούν να χρησιμοποιηθούν κατά τη σύνταξη κώδικα. Παρακάτω αναφέρονται μερικά από τα πιο συχνά χρησιμοποιούμενα:

Λειτουργία Δράση
κοιλιακούς Επιστρέφει την απόλυτη τιμή του δεδομένου αριθμού.
  • Κοιλιακοί (-20)επιστρέφει την τιμή 20.
  • κοιλιακοί (20)επιστρέφει την τιμή 20.
Ο Χρ Επιστρέφει τον χαρακτήρα ANSI που αντιστοιχεί στην αριθμητική τιμή της παραμέτρου.
  • Chr(10)επιστρέφει μια αλλαγή γραμμής.
  • Chr(97)επιστρέφει έναν χαρακτήρα ένα.
Ημερομηνία Επιστρέφει την τρέχουσα ημερομηνία συστήματος.
ΗμερομηνίαΠροσθήκη Προσθέτει ένα καθορισμένο χρονικό διάστημα στη δεδομένη ημερομηνία. Σύνταξη συνάρτησης:

ΗμερομηνίαΠροσθήκη( διάστημα , αριθμός , η ημερομηνία )

Πού είναι το επιχείρημα διάστημακαθορίζει τον τύπο του χρονικού διαστήματος που προστίθεται στο δεδομένο ημερομηνίαστο ποσό που καθορίζεται στο επιχείρημα αριθμός .

Διαφωνία διάστημαμπορεί να λάβει μία από τις ακόλουθες τιμές:

  • DateAdd("d", 32, "01/01/2015")προσθέτει 32 ημέρες στην ημερομηνία 01/01/2015 και έτσι επιστρέφει την ημερομηνία 02/02/2015.
  • DateAdd("ww", 36, "01/01/2015")προσθέτει 36 εβδομάδες στην ημερομηνία 01/01/2015 και επιστρέφει την ημερομηνία 09/09/2015.
DateDiff Υπολογίζει τον αριθμό των καθορισμένων χρονικών διαστημάτων μεταξύ δύο δεδομένων ημερομηνιών.
  • DateDiff("d", "01/01/2015", "02/02/2015")υπολογίζει τον αριθμό των ημερών μεταξύ 01/01/2015 και 02/02/2015, επιστρέφει 32.
  • DateDiff ("ww", "01/01/2015", "03/03/2016")υπολογίζει τον αριθμό των εβδομάδων μεταξύ 01/01/2015 και 03/03/2016, επιστρέφει 61.
ημέρα Επιστρέφει έναν ακέραιο αριθμό που αντιστοιχεί στην ημέρα του μήνα στη δεδομένη ημερομηνία.

Παράδειγμα: ημέρα (“29/01/2015”)επιστρέφει τον αριθμό 29.

Ωρα Επιστρέφει έναν ακέραιο αριθμό που αντιστοιχεί στον αριθμό των ωρών τη δεδομένη στιγμή.

Παράδειγμα: Ώρα (“22:45:00”)επιστρέφει τον αριθμό 22.

InStr Παίρνει έναν ακέραιο και δύο συμβολοσειρές ως ορίσματα. Επιστρέφει τη θέση εμφάνισης της δεύτερης συμβολοσειράς μέσα στην πρώτη, ξεκινώντας την αναζήτηση στη θέση που δίνεται από έναν ακέραιο.
  • InStr(1, "Εδώ είναι η λέξη αναζήτησης", "λέξη")επιστρέφει τον αριθμό 13.
  • InStr(14, "Εδώ είναι η λέξη αναζήτησης και εδώ είναι μια άλλη λέξη αναζήτησης", "λέξη")επιστρέφει τον αριθμό 38.

Σημείωση:Το όρισμα αριθμός μπορεί να μην καθοριστεί, οπότε η αναζήτηση ξεκινά από τον πρώτο χαρακτήρα της συμβολοσειράς που καθορίζεται στο δεύτερο όρισμα της συνάρτησης.

ενθ Επιστρέφει το ακέραιο μέρος του δεδομένου αριθμού.

Παράδειγμα: Int(5.79)επιστρέφει το αποτέλεσμα 5.

Isdate επιστρέφει Αληθήςεάν η δεδομένη τιμή είναι ημερομηνία ή Ψευδής– εάν η ημερομηνία δεν είναι.
  • IsDate (“01/01/2015”)επιστρέφει Αληθής;
  • IsDate(100)επιστρέφει Ψευδής.
IsError επιστρέφει Αληθήςεάν η δεδομένη τιμή είναι σφάλμα, ή Ψευδής– εάν δεν πρόκειται για λάθος.
Λείπει Το όνομα ενός ορίσματος προαιρετικής διαδικασίας μεταβιβάζεται ως όρισμα στη συνάρτηση. Λείπειεπιστρέφει Αληθήςεάν δεν έχει περάσει τιμή για το εν λόγω όρισμα διαδικασίας.
Είναι Αριθμητικό επιστρέφει Αληθήςεάν η δεδομένη τιμή μπορεί να αντιμετωπιστεί ως αριθμός, διαφορετικά επιστρέφει Ψευδής.
Αριστερά Επιστρέφει τον καθορισμένο αριθμό χαρακτήρων από την αρχή της δεδομένης συμβολοσειράς. Η σύνταξη της συνάρτησης έχει ως εξής:

Αριστερά( γραμμή , μήκος )

όπου γραμμή- αυτό είναι πρωτότυπη χορδή, ένα μήκοςείναι ο αριθμός των χαρακτήρων προς επιστροφή, μετρώντας από την αρχή της συμβολοσειράς.

  • Αριστερά ("abvgDeZicleMn", 4)επιστρέφει τη συμβολοσειρά "abcg"?
  • Αριστερά ("abvgDeZicleMn", 1)επιστρέφει τη συμβολοσειρά "a".
Len Επιστρέφει τον αριθμό των χαρακτήρων σε μια συμβολοσειρά.

Παράδειγμα: Len ("abcdej")επιστρέφει τον αριθμό 7.

μήνας Επιστρέφει έναν ακέραιο αριθμό που αντιστοιχεί στον μήνα της δεδομένης ημερομηνίας.

Παράδειγμα: Μήνας (“29/01/2015”)επιστρέφει την τιμή 1.

Στα μέσα Επιστρέφει τον καθορισμένο αριθμό χαρακτήρων από τη μέση της δεδομένης συμβολοσειράς. Σύνταξη συνάρτησης:

Στα μέσα( γραμμή , Αρχή , μήκος )

όπου γραμμήείναι η αρχική συμβολοσειρά Αρχή- τη θέση της αρχής της προς εξαγωγή συμβολοσειράς, μήκοςείναι ο αριθμός των χαρακτήρων που πρέπει να εξαχθούν.

  • Mid("abvgDeZicleMn", 4, 5)επιστρέφει τη συμβολοσειρά "where"?
  • Mid("abvgDeZicleMn", 10, 2)επιστρέφει τη συμβολοσειρά "cl".
Λεπτό Επιστρέφει έναν ακέραιο αριθμό που αντιστοιχεί στον αριθμό των λεπτών στον δεδομένο χρόνο. Παράδειγμα: Λεπτό ("22:45:15")επιστρέφει την τιμή 45.
Τώρα Επιστρέφει την τρέχουσα ημερομηνία και ώρα συστήματος.
σωστά Επιστρέφει τον καθορισμένο αριθμό χαρακτήρων από το τέλος της δεδομένης συμβολοσειράς. Σύνταξη συνάρτησης:

Σωστά( γραμμή , μήκος )

Οπου γραμμήείναι η αρχική συμβολοσειρά, και μήκοςείναι ο αριθμός των χαρακτήρων που πρέπει να εξαχθούν, μετρώντας από το τέλος της δεδομένης συμβολοσειράς.

  • Δεξιά ("abvgDeZicleMn", 4)επιστρέφει τη συμβολοσειρά "clmn"?
  • Δεξιά ("abvgDeZicleMn", 1)επιστρέφει τη συμβολοσειρά "n".
Δεύτερος Επιστρέφει έναν ακέραιο αριθμό που αντιστοιχεί στον αριθμό των δευτερολέπτων στον δεδομένο χρόνο.

Παράδειγμα: Δεύτερο (“22:45:15”)επιστρέφει την τιμή 15.

τετρ Επιστρέφει την τετραγωνική ρίζα της αριθμητικής τιμής που μεταβιβάστηκε στο όρισμα.
  • Sqr(4)επιστρέφει 2?
  • Τετράγωνο (16)επιστρέφει την τιμή 4.
χρόνος Επιστρέφει την τρέχουσα ώρα συστήματος.
Αναποδογυρισμένο Επιστρέφει τον εκθέτη της καθορισμένης διάστασης πίνακα.

Σημείωση:Για πολυδιάστατους πίνακεςΩς προαιρετικό όρισμα, μπορείτε να καθορίσετε ποιο ευρετήριο διάστασης θα επιστρέψετε. Εάν δεν καθορίζεται, η προεπιλογή είναι 1.

Χειριστής ανάθεσης (=)

Ο τελεστής εκχώρησης χρησιμοποιείται για να εκχωρήσει το αποτέλεσμα μιας έκφρασης σε μια μεταβλητή.

Ο τελεστής ανάθεσης έχει δύο συντακτικές μορφές:

varname = έκφραση

varname- οποιαδήποτε μεταβλητή VBA

έκφραση- οποιαδήποτε έκφραση VBA

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

X = 5 + 7; Υ = Χ + 5 ; Ζ = Χ - Υ; A=B; I = I + 1

Οι αρχάριοι χρήστες μερικές φορές δεν κατανοούν το νόημα της τελευταίας λειτουργίας ανάθεσης, όταν και το αριστερό και το δεξί μέρος της λειτουργίας περιέχουν την ίδια μεταβλητή. Σε αυτήν την περίπτωση, πρώτα, το αποτέλεσμα της αξιολόγησης της έκφρασης στη δεξιά πλευρά του τελεστή εκχώρησης τοποθετείται στο ενδιάμεσο κελί μνήμης και, στη συνέχεια, αυτό το αποτέλεσμα εκχωρείται στη μεταβλητή στην αριστερή πλευρά.

Για παράδειγμα, εάν στη δήλωση εκχώρησης A = A +5, η μεταβλητή A πριν από την πράξη εκχώρησης περιείχε την τιμή 7, τότε μετά την πράξη θα περιέχει την τιμή 12 (7+5).

Θα πρέπει να θυμόμαστε:

· Μπορείτε να αντιστοιχίσετε οποιαδήποτε αριθμητική μεταβλητή (ή έκφραση) σε οποιαδήποτε άλλη μεταβλητή αριθμητικού τύπου (ή μεταβλητή τύπου Variant).

· Εάν αντιστοιχίσετε μια αριθμητική παράσταση σε μια πληκτρολογημένη μεταβλητή με μικρότερη ακρίβεια (για παράδειγμα, Double - Long), το VBA στρογγυλοποιεί την τιμή της παράστασης ώστε να ταιριάζει με την ακρίβεια της μεταβλητής που παίρνει τη νέα τιμή.

Εάν μια μεταβλητή τύπου Stringανατεθεί μεταβλητή τύπουΠαραλλαγή που περιέχει έναν αριθμό, το VBA θα μετατρέψει αυτόματα αυτόν τον αριθμό σε συμβολοσειρά.

Χειριστής προσθήκης (+)

Ο τελεστής πρόσθεσης εκτελεί μια απλή προσθήκη. Και οι δύο τελεστές πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που το VBA μπορεί να μετατρέψει σε αριθμό. Ο τελεστής πρόσθεσης μπορεί επίσης να χρησιμοποιηθεί για την εκτέλεση αριθμητικών πράξεων στα δεδομένα Ημερομηνίας.

Ο τύπος δεδομένων του αποτελέσματος μιας έκφρασης προσθήκης είναι συνήθως ο ίδιος με τον πιο ακριβή τύπο σε αυτήν την έκφραση. Υπάρχουν όμως και εξαιρέσεις:

· Το αποτέλεσμα της προσθήκης τύπου Single και Long θα είναι Διπλό.

· Το αποτέλεσμα της προσθήκης ενός τύπου ημερομηνίας σε οποιονδήποτε άλλο τύπο δεδομένων θα είναι πάντα Ημερομηνία.

· Εάν το αποτέλεσμα υπερβαίνει το εύρος του τύπου Integer, τότε η VBA θα το μετατρέψει σε Long.

· Εάν το αποτέλεσμα υπερβαίνει τους τύπους Long, Single, Date, τότε το VBA το μετατρέπει σε Double.

· Εάν κάποιος τελεστής στην έκφραση προσθήκης είναι Null, τότε το αποτέλεσμα της έκφρασης προσθήκης είναι επίσης Null.

Θυμηθείτε τη σειρά αύξησης της ακρίβειας για τους τύπους αριθμητικών δεδομένων: Byte, Integer, Long, Single, Double, Currency.

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

Τελεστή αφαίρεσης (-)

Ο τελεστής αφαίρεσης κάνει δύο πράγματα: χρησιμοποιείται για να αφαιρέσει έναν αριθμό από έναν άλλο. δηλώνει ένα μοναδικό σύμβολο μείον (αυτό είναι το σύμβολο μείον που τοποθετείται μπροστά από έναν αριθμό για να δείξει ότι είναι αρνητικός αριθμός). Το να βάλουμε ένα μοναδικό μείον μπροστά από μια μεταβλητή ή έκφραση είναι το ίδιο με τον πολλαπλασιασμό αυτού του αριθμού με -1.

Και οι δύο τελεστές στην έκφραση αφαίρεσης πρέπει να είναι αριθμητικές μεταβλητές (εκφράσεις) ή εκφράσεις συμβολοσειράς που το VBA μπορεί να μετατρέψει σε αριθμό. Μπορείτε να χρησιμοποιήσετε τον τελεστή αφαίρεσης για να εργαστείτε με ημερομηνίες.

Το VBA χρησιμοποιεί τους ίδιους κανόνες για να προσδιορίσει τον τύπο δεδομένων του αποτελέσματος μιας έκφρασης αφαίρεσης όπως κάνει για παραστάσεις που χρησιμοποιούν τον τελεστή πρόσθεσης. Όμως, υπάρχει μια προσθήκη:

· Εάν και οι δύο τελεστές σε μια παράσταση είναι τύπου Date, τότε το αποτέλεσμα της παράστασης θα είναι τύπου Double.

τελεστής πολλαπλασιασμού (*)

Ο τελεστής πολλαπλασιασμού πολλαπλασιάζει δύο αριθμούς - το αποτέλεσμα της έκφρασης πολλαπλασιασμού είναι το γινόμενο των δύο τελεστών. Και οι δύο τελεστές στην έκφραση πολλαπλασιασμού πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που το VBA μπορεί να μετατρέψει σε αριθμό.

Η VBA ακολουθεί τους ίδιους κανόνες για τον προσδιορισμό του τύπου δεδομένων του αποτελέσματος μιας παράστασης πολλαπλασιασμού όπως και για τις παραστάσεις που χρησιμοποιούν τον τελεστή πρόσθεσης. Στις παραστάσεις πολλαπλασιασμού, όλες οι μεταβλητές Variant που περιέχουν τιμές ημερομηνίας μετατρέπονται σε αριθμητικές τιμές.

Χειριστής τμήματος (/)

Ο τελεστής διαίρεσης κινητής υποδιαστολής εκτελεί τη συνηθισμένη αριθμητική διαίρεση των τελεστών του.

Στις εκφράσεις διαίρεσης, ο πρώτος τελεστής διαιρείται με τον δεύτερο τελεστή - το αποτέλεσμα της διαίρεσης είναι το πηλίκο.

Και οι δύο τελεστές σε μια παράσταση διαίρεσης κινητής υποδιαστολής πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που η VBA μπορεί να μετατρέψει σε αριθμό.

Εάν τουλάχιστον ένας τελεστής στην παράσταση διαίρεσης είναι τύπου Null, τότε το αποτέλεσμα της διαίρεσης θα είναι επίσης Null.

Ο τύπος δεδομένων της πράξης διαίρεσης κινητής υποδιαστολής είναι Διπλός, εκτός από:

Και οι δύο τελεστές στην παράσταση διαίρεσης είναι τύπου Integer ή Single - το αποτέλεσμα του Single.

Εάν το αποτέλεσμα της έκφρασης δεν ξεχειλίζει το εύρος τιμών για τον τύπο Single.

Διαίρεση ακέραιου αριθμού (\)

Η διαίρεση ακέραιου αριθμού διαφέρει από τη διαίρεση κινητής υποδιαστολής στο ότι το αποτέλεσμά της είναι πάντα ένας ακέραιος αριθμός χωρίς κλασματικό μέρος.

Και οι δύο τελεστές σε μια παράσταση διαίρεσης ακέραιου αριθμού πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που η VBA μπορεί να μετατρέψει σε αριθμό.

Πριν από την εκτέλεση μιας λειτουργίας διαίρεσης ακέραιου αριθμού, το VBA στρογγυλοποιεί κάθε τελεστή σε έναν αριθμό τύπου Integer ή Long (ο ίδιος τύπος με το αποτέλεσμα της διαίρεσης ακεραίων).

Το VBA απορρίπτει (αλλά δεν στρογγυλοποιεί!) οποιοδήποτε κλασματικό υπόλοιπο του αποτελέσματος μιας παράστασης διαίρεσης ακέραιου αριθμού. Για παράδειγμα, οι παραστάσεις 22\5 και 24\5 θα έχουν το ίδιο αποτέλεσμα = 4.

Εάν τουλάχιστον ένας τελεστής σε μια παράσταση διαίρεσης ακέραιου αριθμού είναι τύπου Null, τότε το αποτέλεσμα της διαίρεσης είναι επίσης Null.

Modulo Division (Mod)

Η διαίρεση Modulo, όπως ήταν, συμπληρώνει τη διαίρεση ακεραίων. Στη διαίρεση modulo, η έκφραση επιστρέφει μόνο το υπόλοιπο της λειτουργίας διαίρεσης ως ακέραιο.

22 Mod 5 = 2

24 Mod 5 = 4

25 Mod 5 = 0

Οι υπόλοιπες ιδιότητες της διαίρεσης modulo είναι πανομοιότυπες με τη διαίρεση ακεραίων.

Εκτίμηση (^)

Ο τελεστής εκθέσεως αυξάνει έναν αριθμό σε δύναμη.

5 ^ 3 =125

Και οι δύο τελεστές στην έκφραση εκθέσεως πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που το VBA μπορεί να μετατρέψει σε αριθμούς.

Ο τελεστής στα αριστερά του τελεστή εκθέσεως μπορεί να είναι αρνητικός αριθμός μόνο εάν ο τελεστής στα δεξιά είναι ακέραιος.

Το αποτέλεσμα της έκφρασης είναι τύπου Double.

Εάν τουλάχιστον ένας τελεστής στην παράσταση είναι τύπου Null, τότε το αποτέλεσμα της εκθέσεως θα είναι επίσης Null.

Ας συνοψίσουμε τα παραπάνω:

VBA ΛΟΓΙΚΟΙ ΧΕΙΡΙΣΤΕΣ

Ως τελεστής για έναν λογικό τελεστή, μπορείτε να χρησιμοποιήσετε οποιαδήποτε έγκυρη έκφραση που έχει αποτέλεσμα Boole, καθώς και έναν αριθμό που μπορεί να μετατραπεί σε μια Boolean τιμή.

Το αποτέλεσμα μιας λογικής πράξης είναι μια τιμή τύπου Boolean (ή Null αν τουλάχιστον ένας από τους τελεστές είναι Null).

Λογικός τελεστής AND

ΣΥΝΤΑΞΗ:

Operand_1 ΚΑΙ Operand_2

Ο τελεστής AND εκτελεί λογικός συνδυασμός.

Το αποτέλεσμα αυτής της λειτουργίας είναι True μόνο όταν και οι δύο τελεστές είναι True, διαφορετικά False.

πίνακας αλήθειας

Ο τελεστής AND μπορεί να χρησιμοποιηθεί σε πολλούς τελεστές:

(5<7) AND (4>3) ΚΑΙ (5=6) το αποτέλεσμα θα είναι False

Ανεξάρτητα από τον αριθμό των τελεστών, το αποτέλεσμα του λογικού ΚΑΙ λειτουργίεςθα είναι True μόνο αν όλοι οι τελεστές της παράστασης αξιολογηθούν σε True. Σε κάθε άλλη περίπτωση, το αποτέλεσμα θα είναι False. Σημειώστε ότι οι τελεστές περικλείονται σε παρένθεση. Το VBA αξιολογεί πρώτα την τιμή κάθε τελεστή μέσα στις αγκύλες και μετά ολόκληρη την έκφραση.

Λογικός τελεστής Ή

ΣΥΝΤΑΞΗ:

Operand_1 Ή Operand_2

Ο τελεστής OR εκτελεί λογική διάσπαση.

Το αποτέλεσμα αυτής της λειτουργίας είναι True εάν τουλάχιστον ένας από τους τελεστές είναι True, διαφορετικά False.

πίνακας αλήθειας

Ο τελεστής OR μπορεί να χρησιμοποιηθεί σε πολλούς τελεστές:

(5<7) OR (4>3) Ή (5=6) το αποτέλεσμα θα είναι True

Ανεξάρτητα από τον αριθμό των τελεστών, το αποτέλεσμα της λειτουργίας λογικής OR θα είναι πάντα True εάν τουλάχιστον ένας από τους τελεστές της παράστασης αξιολογηθεί σε True. Διαφορετικά, το αποτέλεσμα θα είναι False.

Οι τελεστές AND και OR μπορούν να συνδυαστούν:

((5<7) AND (4>3)) Ή (5=6) το αποτέλεσμα θα είναι αληθές

Boolean τελεστής ΟΧΙ

ΣΥΝΤΑΞΗ:

ΟΧΙ Operand

ΟΧΙ Χειριστήςεκτελεί λογική άρνηση.

Ο τελεστής NOT χρησιμοποιεί μόνο έναν τελεστή.

πίνακας αλήθειας

Οι τελεστές ΚΑΙ Ή ΟΧΙ μπορούν να συνδυαστούν:

((5<7) AND (4>3)) Ή ΟΧΙ (5=6) το αποτέλεσμα θα είναι αληθές

Λογικός τελεστής XOR

ΣΥΝΤΑΞΗ:

Operand_1 XOR Operand_2

Ο χειριστής XOR εκτελεί λογική εξαίρεση.

Το αποτέλεσμα αυτής της πράξης είναι True αν οι τελεστές έχουν διαφορετικές έννοιες, διαφορετικά - Λάθος.

πίνακας αλήθειας

((5<7) AND (4>3)) Ή ΟΧΙ (5=6) Το αποτέλεσμα XOR (5=5) είναι False

Λογικός τελεστής EQV

ΣΥΝΤΑΞΗ:

Operand_1 EQV Operand_2

Ο χειριστής EQV είναι ο χειριστής λογική ισοδυναμία.

Το αποτέλεσμα αυτής της πράξης είναι True αν οι τελεστές έχουν την ίδια τιμή, διαφορετικά False.

πίνακας αλήθειας

((5<7) AND (4>3)) Ή ΟΧΙ (5=6) EQV (5=5) θα οδηγήσει σε True.

Χειριστές σύγκρισης

Συνήθως, οι πράξεις σύγκρισης χρησιμοποιούνται σε εντολές βρόχου για να ληφθεί κάποια απόφαση σχετικά με την περαιτέρω πορεία των λειτουργιών.

Το αποτέλεσμα οποιασδήποτε πράξης σύγκρισης είναι μια Boolean τιμή: True, False.

Εάν και οι δύο τελεστές σε μια έκφραση σύγκρισης είναι του ίδιου τύπου δεδομένων, η VBA εκτελεί μια απλή σύγκριση σε αυτόν τον τύπο.

Εάν και οι δύο τελεστές σε μια παράσταση σύγκρισης έχουν συγκεκριμένους τύπους και αυτοί οι τύποι δεν είναι συμβατοί, το VBA εκδίδει ένα σφάλμα αναντιστοιχίας τύπων.

Εάν ένας ή και οι δύο τελεστές στην έκφραση σύγκρισης είναι μεταβλητές τύπου Variant, η VBA προσπαθεί να μετατρέψει τον τύπο Variant σε κάποιον συμβατό τύπο.

Τελεστές VBA: Αριθμητική, Boolean, Comparisons, Assignments

Χειριστήςείναι η μικρότερη μονάδα κώδικα VBA που μπορεί να εκτελεστεί. Μια δήλωση μπορεί να δηλώσει ή να ορίσει μια μεταβλητή, να ορίσει μια επιλογή μεταγλωττιστή VBA ή να εκτελέσει κάποια ενέργεια σε ένα πρόγραμμα.

Υπάρχουν μόνο 7 αριθμητικοί τελεστές στο VBA. Τέσσερις τυπικοί: πρόσθεση (+), αφαίρεση (-), πολλαπλασιασμός (*), διαίρεση (/) και τρεις ακόμη:

  • εκθέσεως (^), για παράδειγμα 2^3 = 8 ;
  • διαίρεση ακέραιου αριθμού (\). Διαιρεί τον πρώτο αριθμό με τον δεύτερο, απορρίπτοντας (όχι στρογγυλοποίηση) κλασματικό μέρος. Για παράδειγμα, 5\2 = 2 ;
  • modulo division (Mod). Διαιρεί τον πρώτο αριθμό με τον δεύτερο, επιστρέφοντας μόνο το υπόλοιπο της διαίρεσης. Για παράδειγμα, 5 Mod 2 = 1.

Ο τελεστής εκχώρησης στο VBA είναι το σύμβολο ίσον. Μπορεί να γραφτεί ως εξής:

Έστω nVar = 10

ή ακόμα πιο απλά:

nvar = 10

Στη δεύτερη περίπτωση, μην συγχέετε το σύμβολο ίσον με τον τελεστή ίσον.

Εκφραση

nvar = 10

σημαίνει "ορίστε τη μεταβλητή nVar σε 10", και αν η γραμμή μοιάζει με αυτό:

Αν (nVar = 10)

σημαίνει "αν η τιμή της μεταβλητής nVar είναι ίση με 10".

Εάν πρέπει να αντιστοιχίσετε ένα αντικείμενο σε μια μεταβλητή, τότε αυτό γίνεται με άλλους τρόπους.

Υπάρχουν μόνο 8 τελεστές σύγκρισης στο VBA:

  • ισότητα (=), για παράδειγμα, Αν (nVar = 10);
  • μεγαλύτερο από και μικρότερο από (> και<), например, Εάν (nVar > 10);
  • μεγαλύτερο ή ίσο με και μικρότερο ή ίσο με (>= και<=), например, Εάν (nVar >= 10);
  • όχι ίσο (<>), για παράδειγμα, Εάν (nVar<>10) ;
  • σύγκριση αντικειμένων (Είναι). Καθορίζει εάν οι μεταβλητές αντικειμένου αναφέρονται στο ίδιο αντικείμενο ή σε διαφορετικά, για παράδειγμα, Αν (obj1 είναι obj2);
  • ομοιότητα (Like). Συγκρίνει ένα αντικείμενο συμβολοσειράς με ένα μοτίβο και καθορίζει εάν το μοτίβο ταιριάζει.

Οι τελεστές σύγκρισης επιστρέφουν πάντα true ή false - true αν ο ισχυρισμός είναι true και false αν false.

Λίγα λόγια για τη σύγκριση τιμών συμβολοσειρών:

  • Κατά τη σύγκριση τιμών συμβολοσειράς, τα πεζά και κεφαλαία είναι ευαίσθητα.
  • λαμβάνονται επίσης υπόψη τα κενά στις τιμές συμβολοσειρών.
  • κατά τη σύγκριση συμβολοσειρές κειμένουπερισσότερα/λιγότερα από προεπιλογή συγκρίνονται απλά δυαδικούς κωδικούςχαρακτήρες - τι περισσότερο ή λιγότερο. Εάν πρέπει να χρησιμοποιήσετε τη σειρά που ακολουθεί το αλφάβητο, μπορείτε να χρησιμοποιήσετε την εντολή

Επιλογή Σύγκριση κειμένου

Λίγα περισσότερα για τον τελεστή Like. Η γενική του σύνταξη μοιάζει

Έκφραση1 Όπως η Έκφραση2

Σε αυτήν την περίπτωση, το Expression1 είναι οποιαδήποτε έκφραση κειμένου VBA και το Expression2 είναι ένα πρότυπο που μεταβιβάζεται στον τελεστή Like. Μπορείτε να χρησιμοποιήσετε ειδικούς χαρακτήρες μπαλαντέρ σε αυτό το μοτίβο (βλ. Πίνακα 3.1)

Αυτί. 3.1Μπαλαντέρ για τον τελεστή LIKE

Πολύ συχνά, κατά τη δοκιμή πολλών συνθηκών, χρησιμοποιούνται λογικοί τελεστές:

  • ΚΑΙ - λογικό ΚΑΙ, και οι δύο συνθήκες πρέπει να είναι αληθείς.
  • Ή - λογικό Ή, τουλάχιστον μία από τις προϋποθέσεις πρέπει να είναι αληθής.
  • NOT - λογική άρνηση, επιστρέφει TRUE εάν η συνθήκη είναι ψευδής.
  • Το XOR είναι μια λογική εξαίρεση. Σε μια παράσταση E1 XOR, το E2 επιστρέφει TRUE εάν μόνο E1 = TRUE ή μόνο E2 = TRUE διαφορετικά FALSE.
  • EQV - ισοδυναμία δύο παραστάσεων, επιστρέφει TRUE εάν έχουν την ίδια τιμή.
  • IMP - συνεπαγωγή, επιστρέφει FALSE εάν E1 = TRUE και E2 = FALSE, διαφορετικά TRUE.

Πρέπει να θυμάστε για ΚΑΙ, Ή, ΟΧΙ, άλλοι λογικοί τελεστές χρησιμοποιούνται σπάνια.

Σχεδόν κάθε πρόγραμμα VBA χρησιμοποιεί τελεστές συνένωσης. Υπάρχουν δύο από αυτά σε VBA - + ή &. Συνιστάται να χρησιμοποιείτε πάντα & γιατί:

  • όταν χρησιμοποιείτε το &, εκτελείται η αυτόματη μετατροπή αριθμητικών τιμών σε συμβολοσειρές - δεν υπάρχει κίνδυνος λάθους.
  • όταν χρησιμοποιείτε τον τελεστή +, προσθέτοντας μια τιμή συμβολοσειράς σε μια τιμή τύπου Null, προκύπτει Null.

MsgBox "Μήνυμα προς χρήστη" & vUserName

Η σειρά με την οποία εφαρμόζονται οι τελεστές μπορεί να ελεγχθεί χρησιμοποιώντας παρενθέσεις.

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

Μια έκφραση είναι μια τιμή ή μια ομάδα τιμών που εκφράζει μια ενιαία τιμή. Το αποτέλεσμα μιας έκφρασης είναι μια μεμονωμένη τιμή ενός συγκεκριμένου τύπου δεδομένων. Τα σημάδια (προσδιορισμοί) των λειτουργιών χρησιμοποιούνται για να λειτουργήσουν σε ορισμένες τιμές σε εκφράσεις. Για να εκχωρήσετε το αποτέλεσμα μιας έκφρασης σε μια μεταβλητή, χρησιμοποιείται ο τελεστής εκχώρησης (=), ο οποίος αποθηκεύει οποιαδήποτε τιμή που αντιπροσωπεύεται από την έκφραση στα δεξιά του τελεστή εκχώρησης στη θέση μνήμης που αναφέρεται από τη μεταβλητή στα αριστερά αυτού του τελεστή.

Σε όλες τις παρακάτω λειτουργίες, και οι δύο τελεστές πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που η VBA μπορεί να μετατρέψει σε αριθμό.

Πρόσθεση

Το σύμβολο (+) χρησιμοποιείται για την εκτέλεση μιας πράξης πρόσθεσης. Οι όροι πρέπει να είναι αριθμητικές εκφράσεις, συμβολοσειρές που η VBA μπορεί να μετατρέψει σε αριθμούς ή ημερομηνίες που μπορούν επίσης να χρησιμοποιηθούν για την αριθμητική.

Sub Slozhenie() "Παράδειγμα αριθμητικής έκφρασης με πρόσημο "+" Dim A1, A2, A3 As Integer "δηλώνοντας τις μεταβλητές A1=1" εκχωρώντας τιμή 1 στη μεταβλητή A1 A2=2 "εκχώρηση τιμής 2 στη μεταβλητή A2 A3=A1+A2 "Ανάθεση του αποτελέσματος προσθήκη μεταβλητής A3 MsgBox A3 "Έξοδος A3 στο Τελικό δευτερεύον πλαίσιο διαλόγου

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

Αφαίρεση

Το σύμβολο (-) χρησιμοποιείται για την εκτέλεση μιας πράξης αφαίρεσης, καθώς και για την ένδειξη αρνητικών αριθμών (όταν τοποθετείται μπροστά από μια μεταβλητή ή έκφραση και σημαίνει το ίδιο με τον πολλαπλασιασμό με -1). Ένα πρόσημο μείον που τοποθετείται μπροστά από έναν αριθμό για να δείξει ότι ο αριθμός είναι αρνητικός ονομάζεται μοναδικό σύμβολο μείον.

Για να προσδιορίσει τον τύπο δεδομένων του αποτελέσματος μιας έκφρασης αφαίρεσης, το VBA ακολουθεί τους ίδιους κανόνες όπως για τις εκφράσεις που χρησιμοποιούν το πρόσημο του τελεστή πρόσθεσης, αλλά υπάρχουν δύο επιπλέον κανόνες.

Κανόνας 1. Εάν ένας από τους τελεστές σε μια παράσταση αφαίρεσης είναι τύπου Date, τότε το αποτέλεσμα της παράστασης θα είναι επίσης τύπου Date.

Κανόνας 2. Εάν και οι δύο τελεστές σε μια παράσταση αφαίρεσης είναι τύπου Date, τότε το αποτέλεσμα της παράστασης θα είναι τύπου Double.

Sub Vychitanie() "Παράδειγμα υπογεγραμμένης αριθμητικής έκφρασης "-" Dim D1, D2 As Date "μεταβλητή δήλωση D1=Now "εκχώρηση τιμής σημερινή ημερομηνίαμεταβλητή D1 D2=Now-5 "εκχώρηση τιμής ημερομηνίας στη μεταβλητή D2 MsgBox TypeName(D2), vbOKOnly, "Now-5" MsgBox TypeName(D1-D2), vbOKOnly, "D1-D2" End Sub

Πολλαπλασιασμός

Το σύμβολο (*) χρησιμοποιείται για την εκτέλεση μιας πράξης πολλαπλασιασμού, το αποτέλεσμα αυτής της πράξης είναι το γινόμενο των τελεστών. Για να προσδιορίσει τον τύπο δεδομένων του αποτελέσματος μιας παράστασης πολλαπλασιασμού, η VBA χρησιμοποιεί τους ίδιους κανόνες όπως και για παραστάσεις που χρησιμοποιούν πρόσθεση. Στις παραστάσεις πολλαπλασιασμού, όλες οι μεταβλητές Variant που περιέχουν τιμές ημερομηνίας μετατρέπονται σε αριθμητικές τιμές.

"Παράδειγμα αριθμητικών παραστάσεων με πρόσημο "*" 4*10 "πολλαπλασιασμός 4 με 10 MyVar*2 "πολλαπλασιασμός MyVar με 2 MyVar*OtherVar "πολλαπλασιασμός MyVar με OtherVar

Διαίρεση

Το σύμβολο (/) χρησιμοποιείται για την εκτέλεση της λειτουργίας διαίρεσης, αυτό το σύμβολο ονομάζεται πρόσημο διαίρεσης πραγματικών αριθμών. Στις εκφράσεις διαίρεσης, ο ένας τελεστής διαιρείται με τον άλλο και το αποτέλεσμα της διαίρεσης είναι ένα πηλίκο.

"Παράδειγμα υπογεγραμμένων αριθμητικών εκφράσεων"/"10/4" διαίρεση 10 με 4 MyVar/2 "διαίρεση MyVar με 2 MyVar/OtherVar" διαίρεση MyVar με OtherVar

Εάν οποιοσδήποτε τελεστής σε μια παράσταση διαίρεσης αξιολογηθεί σε Null, τότε το αποτέλεσμα της παράστασης είναι επίσης Null. Ο τύπος δεδομένων στις πραγματικές εκφράσεις διαίρεσης είναι συνήθως Διπλός, αλλά υπάρχει μια εξαίρεση.

Εάν και οι δύο τελεστές σε μια παράσταση διαίρεσης είναι τύπου Integer ή Single, τότε το αποτέλεσμα της παράστασης διαίρεσης είναι τύπου Single. Εάν το αποτέλεσμα υπερχειλίσει το εύρος για Single, τότε το VBA το μετατρέπει σε Double.

Διαίρεση ακέραιου αριθμού

Το σύμβολο (\) χρησιμοποιείται για την εκτέλεση μιας πράξης διαίρεσης ακέραιου αριθμού, στην οποία το αποτέλεσμα της διαίρεσης είναι πάντα ένας ακέραιος χωρίς κλασματικό μέρος. Το VBA δεν στρογγυλοποιεί το πηλίκο μιας διαίρεσης ακέραιου αριθμού, αλλά απλώς το συντομεύει σε έναν ακέραιο, απορρίπτοντας το κλασματικό μέρος.

Ο τύπος δεδομένων του αποτελέσματος μιας παράστασης διαίρεσης ακέραιου αριθμού είναι είτε Ακέραιος είτε Μακρύς. Το VBA χρησιμοποιεί τον μικρότερο τύπο δεδομένων που ταιριάζει με το αποτέλεσμα της έκφρασης.

"Ένα παράδειγμα αριθμητικών παραστάσεων με το σύμβολο "\" 10\4 "διαιρέστε το 10 με το 4. επιστρέφει την τιμή 2 MyVar\2 "διαιρώντας το MyVar με 2 MyVar\OtherVar "διαιρώντας το MyVar με OtherVar

Διαίρεση Modulo

Το σύμβολο (Mod) χρησιμοποιείται για την εκτέλεση της λειτουργίας modulo. Στη διαίρεση modulo, η έκφραση επιστρέφει μόνο το υπόλοιπο της διαίρεσης ως ακέραιο.

"Ένα παράδειγμα υπογεγραμμένων αριθμητικών παραστάσεων "Mod" 8 Mod 2 "επιστρέφει την τιμή 0. 5.1 Mod 3 "επιστρέφει την τιμή 2. 6 Mod MyVar "αν το MyVar περιέχει 3, επιστρέφει 0

Μια κατανοητή εξήγηση για αυτό μαθηματική πράξηδεδομένος σε ένα από τα φόρουμ προγραμματιστών. Θα παραθέσω από εκεί: "φανταστείτε ότι υπάρχει ένα γεμάτο δοχείο 50 λίτρων και ένα δοχείο 3 λίτρων. Και αρχίζετε να βγάζετε νερό από το δοχείο με ένα κουτί (μπορείτε να τραβήξετε μόνο ένα γεμάτο δοχείο). ." Με άλλα λόγια, το 50 Mod 3 επιστρέφει 2.

Ο τύπος δεδομένων του αποτελέσματος μιας έκφρασης modulo είναι Integer ή Long. Το VBA χρησιμοποιεί τον μικρότερο τύπο που ταιριάζει στο αποτέλεσμα της έκφρασης.

Εκθεσιμότητα

Το πρόσημο (^) χρησιμοποιείται για την εκτέλεση της λειτουργίας εκθέσεως σε έναν αριθμό ή μια παράσταση. Ο εκθέτης υποδεικνύει πόσες φορές ένας αριθμός ή μια παράσταση πρέπει να πολλαπλασιαστεί από τον εαυτό του.

"Παράδειγμα αριθμητικής έκφρασης με το σύμβολο "^" 3 ^ 3" είναι το ίδιο με το 3*3*3, επιστρέφει την τιμή 27


Χειριστής ανάθεσης (=)

Ο τελεστής εκχώρησης χρησιμοποιείται για να εκχωρήσει το αποτέλεσμα μιας έκφρασης σε μια μεταβλητή.

Ο τελεστής ανάθεσης έχει δύο συντακτικές μορφές:

1 Έστω varname = έκφραση
2 varname = έκφραση


varname- οποιαδήποτε μεταβλητή VBA

έκφραση- οποιαδήποτε έκφραση VBA


Η πρώτη έκδοση του τελεστή εκχώρησης χρησιμοποιήθηκε στις πρώιμες γλώσσες προγραμματισμού Basic. Η δεύτερη επιλογή χρησιμοποιείται στη σύγχρονη έκδοση του VBA.


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


X = 5 + 7; Υ = Χ + 5 ; Ζ = Χ - Υ; A=B; I = I + 1


Οι αρχάριοι χρήστες μερικές φορές δεν κατανοούν το νόημα της τελευταίας λειτουργίας ανάθεσης, όταν και το αριστερό και το δεξί μέρος της λειτουργίας περιέχουν την ίδια μεταβλητή. Σε αυτήν την περίπτωση, πρώτα, το αποτέλεσμα της αξιολόγησης της έκφρασης στη δεξιά πλευρά του τελεστή εκχώρησης τοποθετείται στο ενδιάμεσο κελί μνήμης και, στη συνέχεια, αυτό το αποτέλεσμα εκχωρείται στη μεταβλητή στην αριστερή πλευρά.

Για παράδειγμα, εάν στη δήλωση εκχώρησης A = A +5, η μεταβλητή A πριν από την πράξη εκχώρησης περιείχε την τιμή 7, τότε μετά την πράξη θα περιέχει την τιμή 12 (7+5).

Θα πρέπει να θυμόμαστε:

  • Μπορείτε να αντιστοιχίσετε οποιαδήποτε αριθμητική μεταβλητή (ή έκφραση) σε οποιαδήποτε άλλη μεταβλητή αριθμητικού τύπου (ή μεταβλητή τύπου Variant).
  • Εάν αντιστοιχίσετε μια αριθμητική παράσταση σε μια πληκτρολογημένη μεταβλητή με χαμηλότερη ακρίβεια (για παράδειγμα, Double - Long), το VBA στρογγυλοποιεί την τιμή της παράστασης ώστε να ταιριάζει με την ακρίβεια της μεταβλητής που παίρνει τη νέα τιμή.
  • Όταν σε μια μεταβλητή String εκχωρείται μια παραλλαγή που περιέχει έναν αριθμό, το VBA μετατρέπει αυτόματα τον αριθμό σε συμβολοσειρά.

Χειριστής προσθήκης (+)

Ο τελεστής πρόσθεσης εκτελεί μια απλή προσθήκη. Και οι δύο τελεστές πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που το VBA μπορεί να μετατρέψει σε αριθμό. Ο τελεστής πρόσθεσης μπορεί επίσης να χρησιμοποιηθεί για την εκτέλεση αριθμητικών πράξεων στα δεδομένα Ημερομηνίας.


Ο τύπος δεδομένων του αποτελέσματος μιας έκφρασης προσθήκης είναι συνήθως ο ίδιος με τον πιο ακριβή τύπο σε αυτήν την έκφραση. Υπάρχουν όμως και εξαιρέσεις:

  • Το αποτέλεσμα της προσθήκης τύπου Single και Long είναι Διπλό.
  • Η προσθήκη ενός τύπου ημερομηνίας σε οποιονδήποτε άλλο τύπο δεδομένων θα έχει πάντα ως αποτέλεσμα μια Ημερομηνία.
  • Εάν το αποτέλεσμα υπερβαίνει το εύρος του τύπου Integer, τότε το VBA το μετατρέπει σε Long.
  • Εάν το αποτέλεσμα υπερβαίνει τους τύπους Long, Single, Date, τότε το VBA το μετατρέπει σε Double.
  • Εάν οποιοσδήποτε τελεστής στην έκφραση προσθήκης είναι Null, τότε το αποτέλεσμα της έκφρασης προσθήκης είναι επίσης Null.

Θυμηθείτε τη σειρά αύξησης της ακρίβειας για τους τύπους αριθμητικών δεδομένων: Byte, Integer, Long, Single, Double, Currency.

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

Τελεστή αφαίρεσης (-)

Ο τελεστής αφαίρεσης κάνει δύο πράγματα: χρησιμοποιείται για να αφαιρέσει έναν αριθμό από έναν άλλο. δηλώνει ένα μοναδικό σύμβολο μείον (αυτό είναι το σύμβολο μείον που τοποθετείται μπροστά από έναν αριθμό για να δείξει ότι είναι αρνητικός αριθμός). Το να βάλουμε ένα μοναδικό μείον μπροστά από μια μεταβλητή ή έκφραση είναι το ίδιο με τον πολλαπλασιασμό αυτού του αριθμού με -1.


Και οι δύο τελεστές στην έκφραση αφαίρεσης πρέπει να είναι αριθμητικές μεταβλητές (εκφράσεις) ή εκφράσεις συμβολοσειράς που το VBA μπορεί να μετατρέψει σε αριθμό. Μπορείτε να χρησιμοποιήσετε τον τελεστή αφαίρεσης για να εργαστείτε με ημερομηνίες.

Το VBA χρησιμοποιεί τους ίδιους κανόνες για να προσδιορίσει τον τύπο δεδομένων του αποτελέσματος μιας έκφρασης αφαίρεσης όπως κάνει για παραστάσεις που χρησιμοποιούν τον τελεστή πρόσθεσης. Όμως, υπάρχει μια προσθήκη:
Εάν και οι δύο τελεστές σε μια παράσταση είναι τύπου Date, τότε το αποτέλεσμα της παράστασης θα είναι τύπου Double.

τελεστής πολλαπλασιασμού (*)

Ο τελεστής πολλαπλασιασμού πολλαπλασιάζει δύο αριθμούς - το αποτέλεσμα της έκφρασης πολλαπλασιασμού είναι το γινόμενο των δύο τελεστών. Και οι δύο τελεστές στην έκφραση πολλαπλασιασμού πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που το VBA μπορεί να μετατρέψει σε αριθμό.

Η VBA ακολουθεί τους ίδιους κανόνες για τον προσδιορισμό του τύπου δεδομένων του αποτελέσματος μιας παράστασης πολλαπλασιασμού όπως και για τις παραστάσεις που χρησιμοποιούν τον τελεστή πρόσθεσης. Στις παραστάσεις πολλαπλασιασμού, όλες οι μεταβλητές Variant που περιέχουν τιμές ημερομηνίας μετατρέπονται σε αριθμητικές τιμές.

Χειριστής τμήματος (/)

Ο τελεστής διαίρεσης κινητής υποδιαστολής εκτελεί τη συνηθισμένη αριθμητική διαίρεση των τελεστών του.

Στις εκφράσεις διαίρεσης, ο πρώτος τελεστής διαιρείται με τον δεύτερο τελεστή - το αποτέλεσμα της διαίρεσης είναι το πηλίκο.

Και οι δύο τελεστές σε μια παράσταση διαίρεσης κινητής υποδιαστολής πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που η VBA μπορεί να μετατρέψει σε αριθμό.

Εάν τουλάχιστον ένας τελεστής στην παράσταση διαίρεσης είναι τύπου Null, τότε το αποτέλεσμα της διαίρεσης θα είναι επίσης Null.

Ο τύπος δεδομένων της πράξης διαίρεσης κινητής υποδιαστολής είναι Διπλός, εκτός από:

  • Και οι δύο τελεστές στην παράσταση διαίρεσης είναι τύπου Integer ή Single - το αποτέλεσμα του Single.
  • Εάν το αποτέλεσμα της έκφρασης δεν ξεχειλίζει το εύρος τιμών για τον τύπο Single.

Διαίρεση ακέραιου αριθμού (\)

Η διαίρεση ακέραιου αριθμού διαφέρει από τη διαίρεση κινητής υποδιαστολής στο ότι το αποτέλεσμά της είναι πάντα ένας ακέραιος αριθμός χωρίς κλασματικό μέρος.

Και οι δύο τελεστές σε μια παράσταση διαίρεσης ακέραιου αριθμού πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που η VBA μπορεί να μετατρέψει σε αριθμό.

Πριν από την εκτέλεση μιας λειτουργίας διαίρεσης ακέραιου αριθμού, το VBA στρογγυλοποιεί κάθε τελεστή σε έναν αριθμό τύπου Integer ή Long (ο ίδιος τύπος με το αποτέλεσμα της διαίρεσης ακεραίων).

Το VBA απορρίπτει (αλλά δεν στρογγυλοποιεί!) οποιοδήποτε κλασματικό υπόλοιπο του αποτελέσματος μιας παράστασης διαίρεσης ακέραιου αριθμού. Για παράδειγμα, οι παραστάσεις 22\5 και 24\5 θα έχουν το ίδιο αποτέλεσμα = 4.

Εάν τουλάχιστον ένας τελεστής σε μια παράσταση διαίρεσης ακέραιου αριθμού είναι τύπου Null, τότε το αποτέλεσμα της διαίρεσης είναι επίσης Null.

Modulo Division (Mod)

Η διαίρεση Modulo, όπως ήταν, συμπληρώνει τη διαίρεση ακεραίων. Στη διαίρεση modulo, η έκφραση επιστρέφει μόνο το υπόλοιπο της λειτουργίας διαίρεσης ως ακέραιο.
22 Mod 5 = 2
24 Mod 5 = 4
25 Mod 5 = 0

Οι υπόλοιπες ιδιότητες της διαίρεσης modulo είναι πανομοιότυπες με τη διαίρεση ακεραίων.

Εκτίμηση (^)

Ο τελεστής εκθέσεως αυξάνει έναν αριθμό σε δύναμη.



Και οι δύο τελεστές στην έκφραση εκθέσεως πρέπει να είναι αριθμητικές εκφράσεις ή συμβολοσειρές που το VBA μπορεί να μετατρέψει σε αριθμούς.

Ο τελεστής στα αριστερά του τελεστή εκθέσεως μπορεί να είναι αρνητικός αριθμός μόνο εάν ο τελεστής στα δεξιά είναι ακέραιος.

Το αποτέλεσμα της έκφρασης είναι τύπου Double.

Εάν τουλάχιστον ένας τελεστής στην παράσταση είναι τύπου Null, τότε το αποτέλεσμα της εκθέσεως θα είναι επίσης Null.


Ας συνοψίσουμε τα παραπάνω.