VBA Mantıksal Operatörleri - OR, AND, XOR, NOT, IS, & LIKE

VBA, mantıksal operatörleri kullanmanıza izin verir Ve, Veya, Olumsuz, Xor değerleri karşılaştırmak için. Operatörler "Boolean" olarak kabul edilir, bu da sonuç olarak True veya False döndürdükleri anlamına gelir.

Dizeleri nasıl karşılaştıracağınızı öğrenmek istiyorsanız, buraya tıklayın: VBA Dizeleri Karşılaştır - StrComp

Karşılaştırma operatörlerinin nasıl kullanılacağını öğrenmek istiyorsanız, buraya tıklayın: VBA Karşılaştırma Operatörleri - Eşit Değil ve Daha Fazlası

Ve Mantıksal Operatörünü Kullanma

NS Ve mantıksal operatör iki veya daha fazla koşulu karşılaştırır. Tüm koşullar doğruysa, operatör True değerini döndürür. Koşullardan en az biri doğru değilse, operatör False döndürür. İşte bir örnek:

123456789101112 Tamsayı Olarak Dim intADim intB Tamsayı OlarakDim blnResult As BooleintA = 5intB = 5intA = 5 Ve intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir

Bu örnekte, her ikisinin de olup olmadığını kontrol etmek istiyoruz. intA ve intB 5'e eşittir. Bu doğruysa, Boole değeri blnSonuç True olacak, aksi takdirde False olacaktır.

İlk olarak, değerlerini belirledik intA ve intB 5'e:

12 intA = 5intB = 5

Bundan sonra, kullanıyoruz Ve Değerlerin 5'e eşit olup olmadığını kontrol etmek için If ifadesindeki operatör:

12345 intA = 5 ve intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir

Her iki değişken de 5'e eşit olduğundan, blnSonuç True döndürür:

Resim 1. VBA'da And mantıksal operatörünü kullanma

Veya Mantıksal Operatörü Kullanma

NS Veya mantıksal operatör iki veya daha fazla koşulu karşılaştırır. Koşullardan en az biri doğruysa, True değerini döndürür. Koşullardan hiçbiri doğru değilse, operatör False değerini döndürür. İşte örnek için kod:

123456789101112 Tamsayı Olarak Dim intADim intB Tamsayı OlarakDim blnResult As BooleintA = 5intB = 10intA = 5 veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir

Bu örnekte, her ikisinin de olup olmadığını kontrol etmek istiyoruz. intA 5'e eşittir veya intB 10'a eşittir. Bu koşullardan herhangi biri doğruysa, Boole değeri blnSonuç True olacak, aksi takdirde False olacaktır.

İlk önce değerini belirledik intA 5'e ve intB 10'a kadar:

12 intA = 5intB = 10

Bundan sonra, kullanıyoruz Veya Değerlerden herhangi birinin 5'e eşit olup olmadığını kontrol etmek için If ifadesindeki operatör:

12345 intA = 5 veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir

Olarak intA değer 5, blnSonuç True döndürür:

Resim 2. VBA'da Or mantıksal operatörünü kullanma

Mantıksal Olmayan Operatörü Kullanma

NS Olumsuz mantıksal operatör bir veya daha fazla koşulu kontrol eder. Koşullar doğruysa, operatör False değerini döndürür. Aksi takdirde, True döndürür. İşte örnek için kod:

12345678910 Tamsayı Olarak Dim intADim blnResult As BooleintA = 5Değilse (intA = 6) O haldeblnResult = DoğruBaşkablnResult = YanlışBitir

Bu örnekte, değerinin olup olmadığını kontrol etmek istiyoruz. intA 6'ya eşit değildir. intA 6'dan farklı, Boole değeri blnSonuç True olacak, aksi takdirde False olacaktır.

İlk önce değerini belirledik intA 5'e:

1 intA = 5

Bundan sonra, intA değerinin 6'dan farklı olup olmadığını kontrol etmek için If ifadesinde Not operatörünü kullanırız:

12345 Değilse (intA = 6) O haldeblnResult = DoğruBaşkablnResult = YanlışBitir

Olarak intA değer 5, blnSonuç True döndürür:

Resim 3. VBA'da Mantıksal değil operatörünü kullanma

Xor Mantıksal Operatörünü Kullanma

NS Xor mantıksal operatör iki veya daha fazla koşulu karşılaştırır. Koşullardan tam olarak biri doğruysa, True değerini döndürür. Koşulların hiçbiri doğru değilse veya birden fazlası doğruysa, False değerini döndürür. İşte örnek için kod:

123456789101112 Tamsayı Olarak Dim intADim intB Tamsayı OlarakDim blnResult As BooleintA = 5intB = 10intA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir

Bu örnekte, değerlerden birinin (intA veya IntB) tam olarak 5'e eşit olup olmadığını kontrol etmek istiyoruz. Yalnızca bir koşul doğruysa, Boolean değeri blnSonuç True olacak, aksi takdirde False olacaktır.

İlk önce değerini belirledik intA 5'e ve intB 10'a kadar:

12 intA = 5intB = 10

Bundan sonra, kullanıyoruz Veya Değerlerden herhangi birinin 5'e eşit olup olmadığını kontrol etmek için If ifadesindeki operatör:

12345 intA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir

Olarak intA değer 5 ve intB 10, blnSonuç True döndürür:

Resim 4. VBA'da Xor mantıksal operatörünü kullanma

Operatör

Is Operator, iki nesne değişkeninin aynı nesneyi depolayıp depolamadığını test eder.

Bir örneğe bakalım. Burada rng1 ve rng2 çalışma sayfası nesnelerine iki çalışma sayfası atayacağız ve iki çalışma sayfası nesnesinin aynı çalışma sayfasını depolayıp depolamadığını test edeceğiz:

12345678910111213 Alt CompareObjects()Dim ws1 As Worksheet, ws2 As Worksheetws1 = Sayfaları ayarla("Sayfa1")ws2 = Sayfaları ayarla("Sayfa2")Eğer ws1 ws2 iseMsgBox "Aynı WS"BaşkaMsgBox "Farklı WS'ler"BitirAlt Bitiş

Elbette çalışma sayfası nesneleri aynı değildir, bu nedenle “Farklı WS'ler” döndürülür.

Operatör gibi

Like Operatörü, tam olmayan eşleşmeler için iki diziyi karşılaştırabilir. Bu örnek, bir dizenin "Mr" ile başlayıp başlamadığını test edecektir.

1234567891011121314 Alt LikeDemo()Dim strName As StringDim blnResult As BoolestrName = "Bay Michael James"strName "Mr*" Gibiyse O zamanblnResult = DoğruBaşkablnResult = YanlışBitirAlt Bitiş

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave