VBA'da, aşağıdakileri kullanarak iki dizeyi karşılaştırabilirsiniz: StrComp işlev. Bu öğreticide, bu işlevi farklı karşılaştırma yöntemleriyle nasıl kullanacağınızı öğreneceksiniz.
Tam olmayan eşleşmeleri karşılaştırmak için VBA benzeri operatörün nasıl kullanılacağını öğrenmek istiyorsanız, buraya tıklayın: VBA Benzer Operatör.
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ı
İki Dizeyi Karşılaştırmak için StrComp İşlevini Kullanma
NS StrComp işlev, bağımsız değişken olarak iki dize ve karşılaştırma yöntemi alır. 3 karşılaştırma yöntemi vardır:
- vbBinaryCompare - iki diziyi ikili (büyük/küçük harfe duyarlı) karşılaştırır;
- vbTextCompare - iki diziyi metin olarak karşılaştırır (büyük/küçük harfe duyarsız);
- vbDatabaseKarşılaştır - bu yöntem yalnızca Microsoft Access'te mevcuttur ve VBA'da mevcut değildir.
Varsayılan olarak, işlev ikili yöntemi kullanır. Bu argümanı atlarsak, fonksiyon büyük/küçük harfe duyarlı olacaktır.
İşlev aşağıdaki sonuçları döndürür:
- 0 - dizeler eşitse;
- -1 - dize 1, dize 2'den küçükse;
- 1 - dize 1, dize 2'den büyükse;
- Null - dizelerden biri boşsa.
İşte örnek kod:
123 | Dim intResult As IntegerintResult = StrComp("Bilgisayar", "Bilgisayar") |
Bu örnekte, dizelerin olup olmadığını kontrol etmek istiyoruz. "Bilgisayar" ve "Bilgisayar" varsayılan karşılaştırma yöntemini (ikili) kullanarak eşittir. Fonksiyonun sonucu, intResult değişken. Resimde görebileceğiniz gibi, her iki dize de eşittir, bu nedenle intResult 0 değerine sahiptir.
Resim 1. VBA'da StrComp işlevini ikili yöntemle kullanma
StrComp İşlevini İkili ve Metinsel Yöntemle Kullanma
Şimdi ikili ve metinsel yöntemi kullanma arasındaki farkı göreceksiniz. İkili yöntemin her karakter için bir ikili numarası vardır, bu nedenle bu yöntemde büyük harf ve küçük harf farklı karakterlerdir. Öte yandan, metinsel yöntem “S” ve “s” yi aynı harfler olarak kabul eder. İşlevi büyük/küçük harfe duyarlı hale getirmek istiyorsanız, üçüncü argümanı şu şekilde ayarlamanız gerekir: vbBinaryCompare. İşte kod:
123456 | Dim intResult1 Tamsayı OlarakDim intResult2 Tamsayı OlarakintResult1 = StrComp("Bilgisayar", "Bilgisayar")intResult2 = StrComp("Bilgisayar", "Bilgisayar", vbTextCompare) |
Dizeleri karşılaştırmak istiyoruz "Bilgisayar" ve "Bilgisayar", her iki yöntemi de kullanarak.
değişkende intResult1, değeri ikili yöntemle alacağız, intResult2 değeri metinsel yöntemle alacaktır. Bu iki değişkenin değerlerini görebilirsiniz:
Resim 2. StrComp işlevini ikili ve metinsel yöntemle kullanma
Değeri intResult1 1'dir, bu, ikili yöntem için iki dizenin farklı olduğu anlamına gelir. Metin yöntemi için bu iki dize eşittir, bu nedenle değeri intResult2 0.