Vba'da joker karakterler nasıl kullanılır (örneklerle)
Dizelerdeki belirli kalıpları aramak için VBA’daki Like operatörünü aşağıdaki yerleşik joker karakterlerle kullanabilirsiniz:
- * : Herhangi bir sayıda karakterle eşleşir
- ? : Tek bir karakterle eşleşir
- # : tek rakama karşılık gelir
- [] : aralık içindeki herhangi bir karakterle eşleşir
Aşağıdaki örnekler bu joker karakterlerin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Bir alt dizeyi aramak için *Wildcard’ı kullanın
A sütununda aşağıdaki yiyecek listesinin bulunduğunu varsayalım:
A sütunundaki her dizede “sıcak” alt dizeyi aramak ve sonuçları B sütununda görüntülemek için aşağıdaki makroyu oluşturabiliriz:
Sub FindString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *hot* " Then
Range(" B " & i) = " Contains hot "
Else
Range(" B " & i) = " Does Not Contain hot "
End If
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Örnek 2: Bir kalıpla biten dizeleri aramak için * joker karakterini kullanın
A sütununda aşağıdaki basketbol takımı isimleri listesinin bulunduğunu varsayalım:
A sütununda “ets” ile biten dizeleri aramak ve sonuçları B sütununda görüntülemek için aşağıdaki makroyu oluşturabiliriz:
Sub FindEndingString()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *ets " Then
Range(" B " & i) = " Ends in ets "
Else
Range(" B " & i) = " Does Not End in ets "
End If
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Örnek 3: Numaraları aramak için # joker karakterini kullanın
A sütununda aşağıdaki dize listesine sahip olduğumuzu varsayalım:
A sütununda sayıları içeren dizeleri aramak ve sonuçları B sütununda görüntülemek için aşağıdaki makroyu oluşturabiliriz:
SubFindNumbers ()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *#* " Then
Range(" B " & i) = " Contains Numbers "
Else
Range(" B " & i) = " Does Not Contain Numbers "
End If
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Örnek 4: Birden fazla karakteri aramak için [] joker karakterini kullanın
A sütununda aşağıdaki basketbol takımı isimleri listesinin bulunduğunu varsayalım:
Takım adının herhangi bir yerinde r, s veya t içeren dizeleri A sütununda aramak ve sonuçları B sütununda görüntülemek için aşağıdaki makroyu oluşturabiliriz:
Sub FindSpecificLetters()
Dim i As Integer
For i = 2 To 10
If Range(" A " & i) Like " *[rt]* " Then
Range(" B " & i) = " Contains r, s, or t "
Else
Range(" B " & i) = " Does Not Contain r, s or t "
End If
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Not : VBA joker karakter belgelerinin tamamını burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA kullanılarak diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Bir dizedeki karakterlerin oluşumlarını sayma
VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir
VBA: Belirli bir metin içeren hücreler nasıl sayılır?