Vba: belirli bir metin içeren hücreler nasıl sayılır?


VBA’yı kullanarak belirli bir metni içeren bir aralıktaki hücrelerin sayısını saymak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 SubCountCellsWithText ()
    Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub

Bu özel örnek, A2:A13 aralığında “avs” içeren hücrelerin sayısını sayar ve ardından sonucu D2 hücresine atar.

Not : Yıldız işaretleri ( * ), Countif işlevinde joker karakter olarak kullanılır.

Bunun yerine bir mesaj kutusundaki hücre sayısını görüntülemek istiyorsanız aşağıdaki sözdizimini kullanabilirsiniz:

 SubCountCellsWithText ()

    Dim cellCount As Integer
    
    'Calculate number of cells that contain 'avs'
    cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), "* avs* ")
    
    'Display the result
    MsgBox "Cells that contain avs : " & cellCount
End Sub

Aşağıdaki örnekler, çeşitli basketbol oyuncuları hakkında bilgiler içeren Excel’deki aşağıdaki veri kümesiyle bu yöntemlerin her birinin pratikte nasıl kullanılacağını göstermektedir:

Örnek 1: VBA kullanarak belirli metin içeren hücreleri sayın ve sonuçları hücrede görüntüleyin

Takım adında “avs” içeren hücrelerin sayısını saymak ve sonuçları belirli bir hücrede görüntülemek istediğimizi varsayalım.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 SubCountCellsWithText ()
    Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub

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

D2 hücresinin 5 değerini içerdiğine dikkat edin.

Bu bize A2:A13 aralığında takım adında “avs” içeren 5 hücre olduğunu söyler.

Örnek 2: VBA kullanarak belirli metin içeren hücreleri sayın ve sonuçları mesaj kutusunda görüntüleyin

Bunun yerine “avs” içeren hücrelerin sayısını saymak ve sonuçları bir mesaj kutusunda görüntülemek istediğimizi varsayalım .

Bunun için aşağıdaki makroyu oluşturabiliriz:

 SubCountCellsWithText ()

    Dim cellCount As Integer
    
    'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
    
    'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub

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

Mesaj kutusu bize takım adında “avs” içeren 5 hücrenin olduğunu söylüyor.

Ek kaynaklar

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

VBA: “Hücre şunları içeriyorsa” için basit bir formül
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

Yorum ekle

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