Vba: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir


Bir dizenin başka bir dize içerip içermediğini kontrol etmek için VBA’daki Instr() işlevini kullanabilirsiniz.

Bu işlev aşağıdaki temel sözdizimini kullanır:

Instr(başlangıç, dize1, dize2, …)

Altın:

  • start : Aramanın başlangıç konumu
  • string1 : Aranacak dize
  • string2 : bulmaya çalıştığınız dize

Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.

Örnek: Dizenin başka bir dize içerip içermediğini kontrol etmek için VBA’yı kullanın

Diyelim ki Excel’de çeşitli basketbol takımları hakkında bilgiler içeren aşağıdaki veri kümesine sahibiz:

Şimdi Takım sütunundaki her dizenin dizenin herhangi bir yerinde “avs” içerip içermediğini kontrol etmek istediğimizi varsayalım.

Ekip sütunundaki her dizenin “avs” içerip içermediğini kontrol etmek ve eğer öyleyse D ve E sütunlarındaki satırın tamamını döndürmek için VBA’da aşağıdaki sözdizimini kullanabiliriz:

 Sub StringContains()
Dim i As Integer , i_num As Integer

For i = 2 To 9
    If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then
        i_num = i_num + 1
        Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value
    End If
Next i
End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

Ekip sütununun herhangi bir yerinde “avs” dizesini içeren satırların her birinin D ve E sütunlarında döndürüldüğünü unutmayın.

Bu örnekte, Takım sütununda yalnızca iki takım (Mavs ve Cavs) “avs” ifadesini içeriyordu.

Farklı bir dize aramak için yukarıdaki koddaki “avs” ifadesini istediğiniz dizeyle değiştirmeniz yeterlidir.

Not #1: Kodda, A2’den A9’a kadar olan hücreler ilgilendiğimiz dizeleri içerdiğinden For i = 2 to 9’u kullandık. Aradığınız hücre aralığına bağlı olarak bu aralığı değiştirmekten çekinmeyin.

Not #2 : VBA’daki Instr() işlevinin tam belgelerini burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA kullanarak diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: Bir dizedeki karakterlerin oluşumları nasıl sayılır?
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: Aralığın ortalama değeri nasıl hesaplanır

Yorum ekle

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