VBA'da çalışırken, genellikle dizeleri karşılaştırmanız gerekir. Varsayılan olarak, VBA büyük/küçük harfe duyarlıdır, bu nedenle iki aynı metni karşılaştırırsanız ve bunlardan biri büyük harf ve diğeri küçük harf ise, VBA bunları farklı metinler olarak kabul edecektir. Bu öğreticide, VBA'nın büyük/küçük harfe duyarlı olmasını nasıl önleyeceğinizi göreceksiniz.
VBA Vakasını Duyarsız Hale Getirme
VBA'yı büyük/küçük harfe duyarsız hale getirmek için, Seçenek Metni Karşılaştır modülün başında. İlk olarak, bu seçenek seti olmadan standart VBA davranışına bakacağız. Bu kod:
123456789 | Eğer Sheet1.Range("A1").Value = Sheet1.Range("B1").Value O zamanMsgBox "İki metin aynı"BaşkaMsgBox "İki metin farklıdır"Bitir |
Örnekte, A1 ve B1'den gelen dizeleri karşılaştırmak istiyoruz. Dizeler eşitse, mesaj kutusuna “İki metin aynıdır” mesajıyla döneceğiz. Eşit değillerse “İki metin farklıdır.
Resim 1. Metni Karşılaştır seçeneği olmadan dizeleri karşılaştırma
Resimde de görebileceğiniz gibi, her iki metin de aynıdır, ancak birincisi büyük harf, ikincisi küçük harftir. Bu nedenle, VBA onları farklı kabul eder ve bu mesajı geri gönderir.
1234567891011 | Seçenek Metni KarşılaştırPublic Sub CaseSensitiveTest()Eğer Sheet1.Range("A1").Value = Sheet1.Range("B1").Value O zamanMsgBox "İki metin aynı"BaşkaMsgBox "İki metin farklıdır"BitirAlt Bitiş |
Şimdi modülün başına Seçenek Karşılaştırma Metni ekleyeceğiz ve farkı göreceğiz. İşte kod. Kodu aynı örnek üzerinde çalıştırıyoruz:
Resim 2. Metni Karşılaştır seçeneği ile dizeleri karşılaştırma
Şimdi, Seçenek Metni Karşılaştır ayarlandığında, VBA büyük/küçük harfe duyarsız hale gelir ve bu iki metni aynı kabul eder.
Metin Karşılaştırma
beyan etmezsen Seçenek Metni Karşılaştır, büyük/küçük harfe duyarsız karşılaştırmalar yapmak için dize durumlarını dönüştürebilirsiniz. Bu, UCase, LCase veya StrConv işlevi ile mümkündür. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz: VBA Upper, Lower ve Proper Case - Case Functions