VBA SAYISI

Bu eğitim size VBA'da Excel COUNT işlevini nasıl kullanacağınızı gösterecektir.

VBA SAYISI işlevi, Çalışma Sayfanızda içinde değerler bulunan hücrelerin sayısını saymak için kullanılır. VBA'da WorksheetFunction yöntemi kullanılarak erişilir.

COUNT Çalışma SayfasıFonksiyonu

WorksheetFunction nesnesi, Excel'deki İşlev Ekle iletişim kutusunda bulunan Excel işlevlerinin çoğunu çağırmak için kullanılabilir. COUNT işlevi bunlardan biridir.

123 Alt TestSayıFunctinoRange("D33") = Application.WorksheetFunction.Count(Range("D1:D32"))Alt Bitiş

COUNT işlevinde en fazla 30 bağımsız değişkene sahip olabilirsiniz. Bağımsız değişkenlerin her biri bir hücre aralığına başvurmalıdır.

Aşağıdaki bu örnek, D1 ila D9 hücrelerinde değerlerle doldurulan hücre sayısını sayacaktır.

123 Alt TestSayısı()Range("D10") = Application.WorksheetFunction.Count(Range("D1:D9"))Alt Bitiş

Aşağıdaki örnek, D sütunundaki bir aralıkta ve F sütunundaki bir aralıkta kaç değer olduğunu sayacaktır. Application nesnesini yazmazsanız, varsayılacaktır.

123 Alt TestCountMultiple()Range("G8") = WorksheetFunction.Count(Range("G2:G7"), Range("H2:H7"))Alt Bitiş

Bir Değişkene Sayım sonucu atama

Formülünüzün sonucunu doğrudan Excel Aralığı'na yazmak yerine kodda başka bir yerde kullanmak isteyebilirsiniz. Bu durumda, sonucu daha sonra kodunuzda kullanmak üzere bir değişkene atayabilirsiniz.

1234567 Alt AssignCount()Sonucu Tamsayı Olarak Karart'Değişkeni atasonuç = WorksheetFunction.Count(Range("H2:H11"))'Sonucu gösterMsgBox "Değerlerle doldurulmuş hücre sayısı " & sonuçAlt Bitiş

Aralık Nesnesi ile COUNT

Range nesnesine bir hücre grubu atayabilir ve ardından bu Range nesnesini Çalışma SayfasıFonksiyonu nesne.

123456789 Alt TestCountRange()Aralık Olarak Karartma'hücre aralığını ataSet rng = Aralık("G2:G7")'formüldeki aralığı kullanRange("G8") = WorksheetFunction.Count(rng)'aralık nesnesini serbest bırakRng ayarla = Hiçbir şeyAlt Bitiş

COUNT Çoklu Aralık Nesnesi

Benzer şekilde, birden çok Aralık Nesnesinde kaç hücrenin değerlerle doldurulduğunu sayabilirsiniz.

123456789101112 Alt TestCountMultipleRanges()Aralık olarak Dim rngAAralık olarak Dim rngB'hücre aralığını atarngA = Aralık ("D2:D10") ayarlarngB = Aralık ("E2:E10") olarak ayarla'formüldeki aralığı kullanRange("E11") = WorksheetFunction.Count(rngA, rngB)'aralık nesnesini serbest bırakrngA'yı ​​ayarla = Hiçbir şeyrngB'yi ayarla = Hiçbir şeyAlt Bitiş

COUNTA kullanılıyor

Sayım yalnızca hücrelerdeki DEĞERLERİ sayar, hücrede metin varsa hücreyi saymaz. Herhangi bir tür veriyle doldurulmuş hücreleri saymak için COUNTA işlevini kullanmamız gerekir.

123 Alt TestCountA()Range("B8) = Application.WorksheetFunction.CountA(Range("B1:B6"))Alt Bitiş

Aşağıdaki örnekte, B sütununda değer olmadığı için SAYI işlevi sıfır döndürürken C sütunu için 4 döndürür. Ancak COUNTA işlevi, içinde Metin bulunan hücreleri sayar ve bir değer döndürür. B sütununda 5, C sütununda 4 değerini döndürmeye devam ediyor.

COUNTBLANKS kullanma

COUNTBLANKS işlevi, yalnızca Hücre Aralığındaki Boş Hücreleri, yani içinde hiç veri bulunmayan hücreleri sayar.

123 Alt TestCountBlank()Range("B8) = Application.WorksheetFunction.CountBlanks(Range("B1:B6"))Alt Bitiş

Aşağıdaki örnekte, B sütununda boş hücre yokken C sütununda bir boş hücre vardır.

EĞERSAY İşlevini Kullanma

Kullanılabilecek başka bir çalışma sayfası işlevi EĞERSAY işlevidir.

123456 Alt TestCountIf()Range("H14") = WorksheetFunction.CountIf(Range("H2:H10"), ">0")Range("H15") = WorksheetFunction.CountIf(Range("H2:H10"), ">100")Range("H16") = WorksheetFunction.CountIf(Range("H2:H10"), ">1000")Range("H17") = WorksheetFunction.CountIf(Range("H2:H10"), ">10000")Alt Bitiş

Yukarıdaki prosedür, yalnızca içinde değerleri olan hücreleri, ölçütler eşleşirse sayar - 0'dan büyük, 100'den büyük, 1000'den büyük ve 10000'den büyük. Formülün doğru çalışması için ölçütleri tırnak işaretleri içine almanız gerekir.

WorksheetFunction'ın Dezavantajları

kullandığınızda Çalışma SayfasıFonksiyonu çalışma sayfanızdaki bir aralıktaki değerleri saymak için esnek bir formül değil, statik bir değer döndürülür. Bu, Excel'deki rakamlarınız değiştiğinde, tarafından döndürülen değer anlamına gelir. Çalışma SayfasıFonksiyonu değişmeyecek.

Yukarıdaki örnekte, TestCount prosedürü, bir değerin bulunduğu H sütunundaki hücreleri saymıştır. Formül çubuğunda görebileceğiniz gibi, bu sonuç bir rakamdır, formül değil.

Bu nedenle Aralık (H2:H12) içindeki değerlerden herhangi biri değişirse, H14'teki sonuçlar OLUMSUZ değiştirmek.

kullanmak yerine Çalışma SayfasıFonksiyon.Sayıkullanarak bir hücreye Sayma İşlevi uygulamak için VBA'yı kullanabilirsiniz. formül veya formülR1C1 yöntemler.

Formül Yöntemini Kullanma

Formül yöntemi, özellikle aşağıda gösterildiği gibi bir hücre aralığına işaret etmenizi sağlar, örneğin: H2:H12.

123 Alt TestSayısıFormulaAralık("H14").Formül = "=Sayı(H2:H12)"Alt Bitiş

FormulaR1C1 Yöntemini Kullanma

FromulaR1C1 yöntemi, sizi belirli bir hücre aralığıyla sınırlamadığı için daha esnektir. Aşağıdaki örnek bize yukarıdakiyle aynı cevabı verecektir.

123 Alt TestCountFormula()Aralık("H14").Formül = "=Sayım(R[-9]C:R[-1]C)"Alt Bitiş

Ancak, formülü daha esnek hale getirmek için kodu şu şekilde değiştirebiliriz:

123 Alt TestCountFormula()ActiveCell.FormulaR1C1 = "=Sayım(R[-11]C:R[-1]C)"Alt Bitiş

Çalışma sayfanızın neresinde olursanız olun, formül doğrudan üzerindeki 12 hücredeki değerleri sayacak ve yanıtı ActiveCell'inize yerleştirecektir. COUNT işlevi içindeki Aralık, Satır (R) ve Sütun (C) sözdizimi kullanılarak başvurulmalıdır.

Bu yöntemlerin her ikisi de VBA içinde Dinamik Excel formüllerini kullanmanızı sağlar.

Artık H14'te bir değer yerine bir formül olacak.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave