Λογικοί χειριστές VBA - OR, AND, XOR, NOT, IS, & LIKE

Το VBA σάς επιτρέπει να χρησιμοποιείτε τους λογικούς τελεστές Και, Ή, Δεν, Xor για σύγκριση τιμών. Οι χειριστές θεωρούνται "Boolean", πράγμα που σημαίνει ότι επιστρέφουν Σωστό ή Λάθος ως αποτέλεσμα.

Αν θέλετε να μάθετε πώς να συγκρίνετε συμβολοσειρές, κάντε κλικ εδώ: VBA Σύγκριση συμβολοσειρών - StrComp

Εάν θέλετε να μάθετε πώς να χρησιμοποιείτε τελεστές σύγκρισης, κάντε κλικ εδώ: Χειριστές σύγκρισης VBA - Δεν ισούται με & Περισσότερα

Χρήση του And Logical Operator

ο Και Ο λογικός τελεστής συγκρίνει δύο ή περισσότερες συνθήκες. Εάν ισχύουν όλες οι προϋποθέσεις, ο χειριστής θα επιστρέψει True. Εάν τουλάχιστον μία από τις συνθήκες δεν ισχύει, ο χειριστής θα επιστρέψει False. Εδώ είναι ένα παράδειγμα:

123456789101112 Dim intA ως ακέραιοςDim intB Ως ακέραιοςDim blnResult As BooleanintA = 5intB = 5Αν intA = 5 Και intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Σε αυτό το παράδειγμα, θέλουμε να ελέγξουμε αν και τα δύο intA και intB είναι ίσο με 5. Αν αυτό είναι αλήθεια, η τιμή του Boolean blnΑποτελεσμα θα είναι αληθινό, διαφορετικά, θα είναι ψευδές.

Αρχικά, ορίζουμε τιμές των intA και intB έως 5:

12 intA = 5intB = 5

Μετά από αυτό, χρησιμοποιούμε το Και τελεστή στη δήλωση If για να ελέγξετε εάν οι τιμές είναι ίσες με 5:

12345 Αν intA = 5 Και intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Καθώς και οι δύο μεταβλητές είναι ίσες με 5, το blnΑποτελεσμα επιστρέφει True:

Εικόνα 1. Χρήση του τελικού τελεστή And σε VBA

Χρήση του Or Logical Operator

ο Ή Ο λογικός τελεστής συγκρίνει δύο ή περισσότερες συνθήκες. Εάν τουλάχιστον μία από τις προϋποθέσεις είναι αληθής, θα επιστρέψει True. Εάν καμία από τις συνθήκες δεν ισχύει, ο χειριστής θα επιστρέψει False. Ακολουθεί ο κώδικας για το παράδειγμα:

123456789101112 Dim intA ως ακέραιοςDim intB Ως ακέραιοςDim blnResult As BooleanintA = 5intB = 10Αν intA = 5 int intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Σε αυτό το παράδειγμα, θέλουμε να ελέγξουμε αν και τα δύο intA είναι ίσο με 5. ή intB είναι ίσο με 10. Εάν κάποια από αυτές τις συνθήκες είναι αληθής, η τιμή του Boolean blnΑποτελεσμα θα είναι αληθινό, διαφορετικά, θα είναι ψευδές.

Αρχικά, ορίζουμε την τιμή του intA έως 5 και intB έως 10:

12 intA = 5intB = 10

Μετά από αυτό, χρησιμοποιούμε το Ή τελεστή στη δήλωση If για να ελέγξετε εάν κάποια από τις τιμές είναι ίση με 5:

12345 Αν intA = 5 int intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Οπως και intA η τιμή είναι 5, το blnΑποτελεσμα επιστρέφει True:

Εικόνα 2. Χρήση του λογικού τελεστή Or στο VBA

Χρήση του Μη λογικού τελεστή

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

12345678910 Dim intA ως ακέραιοςDim blnResult As BooleanintA = 5Αν όχι (intA = 6) ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Σε αυτό το παράδειγμα, θέλουμε να ελέγξουμε αν η τιμή του intA δεν είναι ίση με 6. Αν intA είναι διαφορετική από 6, η τιμή του Boolean blnΑποτελεσμα θα είναι αληθινό, διαφορετικά, θα είναι ψευδές.

Αρχικά, ορίζουμε την τιμή του intA έως 5:

1 intA = 5

Στη συνέχεια, χρησιμοποιούμε τον τελεστή Not στη δήλωση If για να ελέγξουμε εάν η τιμή του intA είναι διαφορετική από 6:

12345 Αν όχι (intA = 6) ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Οπως και intA η τιμή είναι 5, το blnΑποτελεσμα επιστρέφει True:

Εικόνα 3. Χρήση του μη λογικού τελεστή στο VBA

Χρήση του Xor Logical Operator

ο Xor Ο λογικός τελεστής συγκρίνει δύο ή περισσότερες συνθήκες. Εάν μία από τις συνθήκες είναι αληθής, θα επιστρέψει True. Εάν καμία από τις προϋποθέσεις δεν είναι αληθής ή περισσότερες από μία είναι αληθινές, θα επιστρέψει Λάθος. Ακολουθεί ο κώδικας για το παράδειγμα:

123456789101112 Dim intA ως ακέραιοςDim intB Ως ακέραιοςDim blnResult As BooleanintA = 5intB = 10Αν intA = 5 Xor intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Σε αυτό το παράδειγμα, θέλουμε να ελέγξουμε αν ακριβώς μία από τις τιμές (intA ή IntB) είναι ίση με 5. Εάν ισχύει μόνο μία συνθήκη, η τιμή του Boolean blnΑποτελεσμα θα είναι αληθινό, διαφορετικά, θα είναι ψευδές.

Αρχικά, ορίζουμε την τιμή του intA έως 5 και intB έως 10:

12 intA = 5intB = 10

Μετά από αυτό, χρησιμοποιούμε το Ή τελεστή στη δήλωση If για να ελέγξετε εάν κάποια από τις τιμές είναι ίση με 5:

12345 Αν intA = 5 Xor intB = 5 ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εαν

Οπως και intA η τιμή είναι 5 και intB είναι 10, το blnΑποτελεσμα επιστρέφει True:

Εικόνα 4. Χρήση του λογικού τελεστή Xor στο VBA

Είναι Operator

Το Is Operator ελέγχει εάν δύο μεταβλητές αντικειμένων αποθηκεύουν το ίδιο αντικείμενο.

Ας δούμε ένα παράδειγμα. Εδώ θα αναθέσουμε δύο φύλλα εργασίας σε αντικείμενα φύλλου εργασίας rng1 και rng2, ελέγχοντας αν τα δύο αντικείμενα φύλλου εργασίας αποθηκεύουν το ίδιο φύλλο εργασίας:

12345678910111213 Sub CompareObjects ()Dim ws1 Ως φύλλο εργασίας, ws2 ως φύλλο εργασίαςΟρισμός ws1 = Φύλλα ("Φύλλο1")Ορισμός ws2 = Φύλλα ("Φύλλο2")Αν ws1 Είναι ws2 ΤότεMsgBox "διο WS"ΑλλούMsgBox "Διαφορετικά WS"Τέλος εανΤέλος υπο

Φυσικά τα αντικείμενα του φύλλου εργασίας δεν είναι τα ίδια, οπότε επιστρέφεται το "Different WSs".

Όπως ο χειριστής

Το Like Operator μπορεί να συγκρίνει δύο συμβολοσειρές για μη ακριβείς αντιστοιχίσεις. Αυτό το παράδειγμα θα δοκιμάσει εάν μια συμβολοσειρά ξεκινά με "Mr."

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = "Κύριος Μάικλ Τζέιμς"Αν strName Όπως "Mr*" ΤότεblnResult = ΑληθινόΑλλούblnResult = ΛάθοςΤέλος εανΤέλος υπο

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave