VBA'da, aşağıdakileri kullanarak iki dizeyi karşılaştırabilirsiniz: Beğenmek dizelerin eşleşmesini kontrol etmek için operatör. Bu öğreticide, bu operatörün farklı desenlerle nasıl kullanılacağını öğreneceksiniz.
VBA'da 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ı
İki Dizeyi Karşılaştırmak için Like Operatörünü Kullanma
Like operatörüyle, bir dizenin belirli bir metinle başlayıp başlamadığını, onu içerip içermediğini vb. kontrol edebiliriz. Varsayılan olarak, Beğenmek operatörü, Binary yöntemini kullanarak karakterleri karşılaştırır. Bu, operatörün büyük/küçük harfe duyarlı olduğu anlamına gelir. Büyük/küçük harfe duyarsız hale getirmek istiyorsanız, koymanız gerekir. Seçenek Metni Karşılaştır modülünüzün en üstünde. Bu yöntemi kullanarak, Beğenmek operatör “S” ve “s”yi aynı karakterler olarak kabul eder. Örneklerimizde, varsayılan, büyük/küçük harfe duyarlı karşılaştırmayı kullanacağız.
Eşleşme varsa, Beğenmek operatör sonuç olarak True, aksi takdirde False döndürür.
İlk olarak, string değişkenimizin ile başlayıp başlamadığını kontrol etmek istediğimiz basit örneğe bakacağız. Bay. Bunu yapmak için, eşleşen metnin sonuna bir yıldız işareti (*) koymanız gerekir (Bay*). İşte kod:
1234567891011121314 | Alt LikeDemo()Dim strName As StringDim blnResult As BoolestrName = "Bay Michael James"strName "Mr*" Gibiyse O zamanblnResult = DoğruBaşkablnResult = YanlışBitirAlt Bitiş |
Bu örnekte, string olup olmadığını kontrol etmek istiyoruz. strName İle başlar Bay ve değişkende True veya False döndürün blnSonuç.
İlk önce değerini belirledik strName ile Bay Michael James:
1 | strName = "Bay Michael James" |
Sonra kullanırız Beğenmek If deyimindeki operatör:
12345 | strName "Mr*" Gibiyse O zamanblnResult = DoğruBaşkablnResult = YanlışBitir |
olarak strName İle başlar Bay, NS blnSonuç True döndürür:
Resim 1. Dizinin belirli karakterlerle başlayıp başlamadığını kontrol etmek için Beğen operatörünü kullanma
Like Operatörünü Farklı Eşleştirme Modelleriyle Kullanma
Like operatörü, farklı desenlere dayalı olarak iki dizenin eşleşmesini kontrol edebilir. İşte olası eşleşen kalıpların listesi:
Desen kodu |
Eşleştirme türü |
* | 0 veya daha fazla karakterle eşleşir |
? | Tek bir karakterle eşleşir |
# | Tek bir rakamla eşleşir |
[karakterler] | Bir karakter listesinden tek bir karakterle eşleşir |
[A-Z] | Alfabeden herhangi bir büyük harfle eşleşir |
[A-Za-z] | Alfabeden herhangi bir karakterle eşleşir |
[!karakterler] | Karakter listesi hariç tek bir karakterle eşleşir |
Şimdi bu kalıpları kodda nasıl kullanacağımızı görebiliriz. İşte birden fazla desen için örnek:
Tek bir karakter eşleştirme:
1234567 | strText1 = "ABCDE"Eğer strText1 "AB?DE" gibiyseblnResult1 = DoğruBaşkablnResult1 = YanlışBitir |
Tek bir rakamı eşleştirme:
1234567 | strText2 = "AB7DE"Eğer strText2 "AB#DE" gibiyseblnResult2 = DoğruBaşkablnResult2 = YanlışBitir |
Alfabeden herhangi bir büyük harfle eşleşen:
1234567 | strText3 = "ABCDE"Eğer strText3 "AB[A-Z]DE" gibiyse O zamanblnResult3 = DoğruBaşkablnResult3 = YanlışBitir |
Alfabeden herhangi bir büyük harfle eşleşmeyen:
1234567 | strText4 = "AB7DE"Eğer strText4 "AB[!A-Z]DE" gibiyse O zamanblnResult4 = DoğruBaşkablnResult4 = YanlışBitir |
Alfabeden herhangi bir karakteri eşleştirme (büyük harf veya küçük harf):
1234567 | strText5 = "ABcDE"Eğer strText5 "AB[A-Za-z]DE" gibiyse O zamanblnResult5 = DoğruBaşkablnResult5 = YanlışBitir |
Kodu çalıştırdığınızda, şunu görebilirsiniz: Beğenmek operatör True değerini döndürür blnSonuç her karşılaştırma için değişkenler:
Resim 2. Farklı eşleştirme desenleriyle Beğen operatörünü kullanma