Boolean Variable Type
Ο τύπος δεδομένων VBA Boolean χρησιμοποιείται για την αποθήκευση τιμών True ή False. Το True μπορεί επίσης να αναπαρασταθεί με 1 και το False με 0.
Για να δηλώσετε μια μεταβλητή Boolean, χρησιμοποιείτε τη δήλωση Dim (συντομογραφία για Dimension):
1 | Dim blnA ως Boolean |
Στη συνέχεια, για να εκχωρήσετε μια τιμή σε μια μεταβλητή, απλά χρησιμοποιήστε το πρόσημο ίσου:
1 | blnA = Αλήθεια |
Όταν το βάζετε σε μια διαδικασία, θα μπορούσε να μοιάζει με αυτό:
123456789101112 | Sub blnExample ()«δηλώστε τη μεταβλητή booleanDim blnA ως Boolean«εκτελέστε κώδικα για να συμπληρώσετε τη μεταβλητή - συνήθως ο κώδικας είναι μια πρόταση if ή μια περίπτωσηΑν Εύρος ("A1")> 0 τότεblnA = αλήθειαΑλλούblnA = ΛάθοςΤέλος εαν"εμφάνιση του πλαισίου μηνυμάτωνMsgBox "Η δοκιμή για να διαπιστωθεί εάν το κελί έχει τιμή μεγαλύτερη από 0 είναι" & blnAΤέλος υπο |
Εάν εκτελέσετε τον παραπάνω κώδικα, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων.
Δηλώστε Boolean Variable σε Module ή Global Level
Στο προηγούμενο παράδειγμα, δηλώσαμε το Boolean μεταβλητή εντός μιας διαδικασίας. Οι μεταβλητές που δηλώνονται με μια διαδικασία μπορούν να χρησιμοποιηθούν μόνο εντός αυτής της διαδικασίας.
Αντ 'αυτού, μπορείτε να δηλώσετε μεταβλητές Boolean σε ενότητα ή παγκόσμιο επίπεδο.
Επίπεδο ενότητας
Δηλώνετε Επίπεδο ενότητας μεταβλητές στην κορυφή των ενοτήτων κώδικα με το Αμυδρός δήλωση.
Αυτές οι μεταβλητές μπορούν να χρησιμοποιηθούν με οποιαδήποτε διαδικασία σε αυτήν την ενότητα κώδικα.
Παγκόσμιο Επίπεδο
Δηλώνετε επίσης Παγκόσμιο επίπεδο μεταβλητές στην κορυφή των ενοτήτων κώδικα. Ωστόσο, αντί να χρησιμοποιήσετε το Αμυδρός δήλωση, θα χρησιμοποιούσατε το Δημόσιο δήλωση για να υποδείξει ότι το Boolean η μεταβλητή είναι διαθέσιμη για χρήση σε όλο το έργο VBA.
1 | Public blnA ως Boolean |
Αν επρόκειτο να δηλώσετε το Boolean μεταβλητή σε επίπεδο μονάδας και στη συνέχεια προσπαθήστε να τη χρησιμοποιήσετε σε διαφορετική ενότητα, θα λάβετε ένα σφάλμα.
Ωστόσο, εάν είχατε χρησιμοποιήσει τη λέξη -κλειδί Public για να δηλώσετε το Boolean μεταβλητό, το σφάλμα δεν θα εμφανιστεί και η διαδικασία θα εκτελεστεί τέλεια.
Χρησιμοποιώντας μια μεταβλητή Boolean
Χρησιμοποιείτε τη μεταβλητή Boolean σε λογική σύγκριση. Αυτά χρησιμοποιούνται συχνά με εντολές If για να ελέγξετε εάν μια συνθήκη είναι σωστή ή λανθασμένη σύμφωνα με το παραπάνω παράδειγμα, ή σε μια γραμμή κώδικα για να εφαρμόσετε μια λογική δοκιμή - ίσως για να δείτε εάν μια τιμή είναι μεγαλύτερη από μια άλλη.
12345678 | Sub blnExample ()«δηλώστε τη μεταβλητή booleanDim blnA As Boolean«δοκιμάστε για να δείτε αν ένας αριθμός είναι μεγαλύτερος από τον επόμενο αριθμόblnA = 45> 68"εμφάνιση του πλαισίου μηνυμάτωνMsgBox blnAΤέλος υπο |
Εάν εκτελέσετε τον παραπάνω κώδικα, θα λάβετε το ακόλουθο πλαίσιο μηνυμάτων.
γιατί φυσικά το 45 δεν είναι μεγαλύτερο από το 68!
Χρήση τελεστών Boolean
Καθώς οι μεταβλητές Boole χρησιμοποιούνται στη λογική σύγκριση, μπορούμε να χρησιμοποιήσουμε τους λογικούς τελεστές AND και OR για να ελέγξουμε εάν περισσότερες από μία συνθήκες είναι αληθείς ή λανθασμένες.
Χρήση του τελεστή AND
Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση AND για να δούμε αν πληρούνται και οι δύο προϋποθέσεις.
12345678 | Sub blnExample ()«δηλώστε τη μεταβλητή booleanDim blnA As Boolean"χρησιμοποιήστε τον τελεστή AND για να ελέγξετε εάν και οι δύο συνθήκες είναι αληθείςblnA = 10> 13 Και 15> 12"εμφάνιση του πλαισίου μηνυμάτωνMsgBox blnAΤέλος υπο |
ή θα μπορούσαμε να εκτελέσουμε την ίδια δοκιμή χρησιμοποιώντας μια δήλωση If:
123456789101112 | Sub blnExample ()«δηλώστε τη μεταβλητή booleanDim blnA As Boolean«χρησιμοποιήστε τον τελεστή AND για να ελέγξετε εάν και οι δύο συνθήκες είναι αληθείςΑν 10> 13 Και 15> 12 ΤότεblnA = ΑλήθειαΑλλούblnA = ΛάθοςΤέλος εαν"εμφάνιση του πλαισίου μηνυμάτωνMsgBox blnAΤέλος υπο |
Και τα δύο παραπάνω παραδείγματα θα επέστρεφαν ΨΕΥΔΗΣ λόγω του ότι 10 είναι ΔΕΝ μεγαλύτερο από 13 - και ΚΑΙ ΤΑ ΔΥΟ Οι προϋποθέσεις πρέπει να είναι True για να είναι αληθές το Boolean.
Χρήση του τελεστή OR
Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση OR για να δούμε εάν πληρούται ΜΙΑ από τις προϋποθέσεις.
12345678 | Sub blnExample ()«δηλώστε τη μεταβλητή booleanDim blnA As Boolean«χρησιμοποιήστε τον τελεστή AND για να ελέγξετε εάν και οι δύο συνθήκες είναι αληθείςblnA = 10> 13 15 15> 12"εμφάνιση του πλαισίου μηνυμάτωνMsgBox blnAΤέλος υπο |
ή θα μπορούσαμε να εκτελέσουμε την ίδια δοκιμή χρησιμοποιώντας μια δήλωση If:
123456789101112 | Sub blnExample ()«δηλώστε τη μεταβλητή booleanDim blnA As Boolean«χρησιμοποιήστε τον τελεστή AND για να ελέγξετε εάν και οι δύο συνθήκες είναι αληθείςΑν 10> 13 15 15> 12 ΤότεblnA = ΑλήθειαΑλλούblnA = ΛάθοςΤέλος εαν"εμφάνιση του πλαισίου μηνυμάτωνMsgBox blnAΤέλος υπο |
Αυτά τα παραδείγματα θα επέστρεφαν ΑΛΗΘΗΣ λόγω του ότι το 10 ΔΕΝ είναι μεγαλύτερο από 13 ΑΛΛΑ 15 ΕΙΝΑΙ μεγαλύτερο από 12 - καιΜΟΝΟ ΕΝΑ Η κατάσταση πρέπει να είναι True για να είναι αληθινή η Boolean.
Η χρήση των εντολών If μας επιτρέπει να χρησιμοποιούμε πιο λογικούς τελεστές
Χρήση του τελεστή NOT
Μπορούμε επίσης να χρησιμοποιήσουμε τον τελεστή NOT με τη μεταβλητή Boolean. Ο τελεστής NOT αναιρεί την τιμή της συνθήκης - οπότε αν μια συνθήκη είναι αληθής, ο τελεστής NOT θα επιστρέψει false.
12345678910111213141516 | Sub FindDifferences ()«δηλώστε μεταβλητές εύρουςDim rng1 As RangeDim rng2 As Range«ενεργοποιήστε το φύλλο έναΦύλλα εργασίας ("Φύλλο1"). Ενεργοποιήστε«συμπληρώστε τις περιοχέςΟρισμός rng1 = Εύρος ("A3")Ορισμός rng2 = Εύρος ("B3")«χρησιμοποιήστε τον τελεστή NOT για να δείτε αν οι τιμές είναι ίσες ή όχι.Εάν όχι rng1.Value = rng2.Value ΤότεMsgBox "Οι τιμές στα κελιά δεν είναι ίσες"ΑλλούMsgBox "Οι τιμές στα κελιά είναι ίσες"Τέλος εανΤέλος υπο |
Χρήση του Xor Logical Operator
οXor Ο λογικός τελεστής χρησιμοποιείται για τη σύγκριση δύο ή περισσότερων συνθηκών. Εάν μία από τις προϋποθέσεις είναι αληθής, θα επιστρέψει TRUE. Εάν υπάρχουν 2 προϋποθέσεις, και ΚΑΜΙΑ δεν είναι αληθινές ή ΚΑΙ οι δύο είναι αληθινές, θα επιστρέψει ΛΑΘΟΣ.
1234567891011121314151617 | Sub blnExample ()"δηλώνουν οι ακέραιοιDim intA ως ακέραιοςDim intB Ως ακέραιος«δηλώστε τη μεταβλητή booleanDim blnResult As Boolean"συμπληρώστε τις μεταβλητέςintA = 5intB = 10«ελέγξτε αν είναι αλήθειαΑν intA = 5 Xor intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εανMsgBox blnΑποτελεσμαΤέλος υπο |
Στο παραπάνω παράδειγμα, καθώς ΜΙΑ από τις συνθήκες είναι TRUE, το πλαίσιο μηνυμάτων θα επιστρέψει ΑΛΗΘΗΣ.
1234567891011121314151617 | Sub blnExample ()"δηλώνουν οι ακέραιοιDim intA ως ακέραιοςDim intB Ως ακέραιος«δηλώστε τη μεταβλητή booleanDim blnResult As Boolean"συμπληρώστε τις μεταβλητέςintA = 5intB = 5«ελέγξτε αν είναι αλήθειαΑν intA = 5 Xor intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εανMsgBox blnΑποτελεσμαΤέλος υπο |
Ωστόσο, στο παραπάνω παράδειγμα, καθώς ισχύουν ΚΑΙ οι δύο συνθήκες, το πλαίσιο μηνυμάτων θα επιστρέψει ΨΕΥΔΗΣ.
1234567891011121314151617 | Sub blnExample ()"δηλώνουν οι ακέραιοιDim intA ως ακέραιοςDim intB Ως ακέραιος«δηλώστε τη μεταβλητή booleanDim blnResult As Boolean"συμπληρώστε τις μεταβλητέςintA = 6intB = 8«ελέγξτε αν είναι αλήθειαΑν intA = 5 Xor intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εανMsgBox blnΑποτελεσμαΤέλος υπο |
και τέλος, καθώς και οι δύο συνθήκες είναι FALSE, το πλαίσιο μηνύματος θα επιστρέψει επίσης FALSE.