Vba'da dizeler nasıl karşılaştırılır: örneklerle
Dizeleri karşılaştırmak için VBA’da aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Büyük/küçük harfe duyarlı dizeleri karşılaştırma
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i)) = 0
Next i
End Sub
Bu makro, A2:A10 ve B2:B10 aralığındaki eşleşen hücrelerde bulunan dizeler arasında büyük/küçük harfe duyarlı bir dize karşılaştırması gerçekleştirir ve dizelerin eşit olup olmadığını belirtmek için C2:C10 aralığında DOĞRU veya YANLIŞ değerini döndürür.
Yöntem 2: Büyük/küçük harfe duyarlı olmayan dize karşılaştırması
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i), vbTextCompare) = 0
Next i
End Sub
Bu makro, A2:A10 ve B2:B10 aralıklarındaki eşleşen hücrelerde bulunan dizeler arasında büyük/küçük harfe duyarlı olmayan bir dize karşılaştırması gerçekleştirir.
Aşağıdaki örnekler, Excel’deki aşağıdaki dize listeleriyle her yöntemin pratikte nasıl kullanılacağını gösterir:
Örnek 1: VBA’da Büyük/Küçük Harfe Duyarlı Dizeleri Karşılaştırma
A ve B sütunlarındaki eşleşen her dize arasında büyük/küçük harfe duyarlı dize karşılaştırması yapmak için aşağıdaki makroyu oluşturabiliriz:
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i)) = 0
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Dizeler eşitse ve büyük/küçük harf aynıysa C sütunu TRUE değerini döndürür.
Aksi halde C sütunu FALSE değerini döndürür.
Örnek 2: VBA’da Büyük/Küçük Harfe Duyarsız Dizeleri Karşılaştırma
A ve B sütunlarındaki eşleşen dizelerin her biri arasında büyük/küçük harfe duyarlı olmayan bir dize karşılaştırması gerçekleştirmek için aşağıdaki makroyu oluşturabiliriz:
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i), vbTextCompare) = 0
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Büyük/küçük harfe bakılmaksızın dizeler eşitse C sütunu TRUE değerini döndürür.
C sütunu yalnızca dizeler eşit değilse FALSE değerini döndürür.
Not : VBA’daki StrComp işlevinin tam belgelerini burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Bir dizedeki karakterler nasıl değiştirilir?
VBA: Bir dizeden özel karakterler nasıl kaldırılır
VBA: Bir dize int’ye nasıl dönüştürülür?