Vba: "hücre şunları içeriyorsa" için basit bir formül
VBA’da “hücre şunları içeriyorsa” formülünü kullanmak için aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
Bu özel örnek, A2:A8 aralığındaki her hücrenin “kaplumbağa” içerip içermediğini kontrol eder, ardından B2:B8 aralığında eşleşen her hücreye “Kaplumbağa içerir” veya “Kaplumbağa içermez” ifadesini atar.
Not : Instr yöntemi, bir dizenin başka bir dize içerip içermediğini kontrol eder ve LCase yöntemi, büyük/küçük harfe duyarlı olmayan bir arama gerçekleştirmek için metni küçük harfe dönüştürür.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA’da “Hücre içeriyorsa” nasıl kullanılır?
Excel’de her biri farklı metin içeren aşağıdaki hücre listesine sahip olduğumuzu varsayalım:
A2:A8 aralığındaki her hücrenin “kaplumbağa” metnini içerip içermediğini kontrol etmek ve sonuçları B2:B8 aralığında karşılık gelen hücrelerde görüntülemek istediğimizi varsayalım.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
B sütunu, A sütunundaki karşılık gelen hücrelerin metnin herhangi bir yerinde “kaplumbağa” ifadesini içerip içermediğini bize söyler.
Not : VBA Instr yöntemine ilişkin tüm belgeleri 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 karakterlerin oluşumları nasıl sayılır?
VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir