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