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:

VBA'da büyük/küçük harfe duyarlı dizeleri karşılaştırma

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:

VBA'da büyük/küçük harfe duyarsız dize karşılaştırması

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?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir