VBA Toplam İşlevi (Aralıklar, Sütunlar ve Daha Fazlası)

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

Toplam işlevi, en yaygın kullanılan Excel işlevlerinden biridir ve muhtemelen Excel kullanıcılarının kullanmayı öğrendiği ilk işlevdir. VBA'nın aslında bir eşdeğeri yoktur - bir kullanıcının VBA'daki yerleşik Excel işlevini aşağıdakileri kullanarak kullanması gerekir: Çalışma SayfasıFonksiyonu nesne.

Toplam Ç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. SUM işlevi bunlardan biridir.

123 Alt TestFonksiyonuRange("D33") = Application.WorksheetFunction.Sum("D1:D32")Alt Bitiş

SUM işlevinde en fazla 30 bağımsız değişkeniniz olabilir. Argümanların her biri ayrıca bir hücre aralığına da başvurabilir.

Aşağıdaki bu örnek, D1'den D9'a kadar olan hücreleri ekleyecektir.

123 Alt TestSum()Range("D10") = Application.WorksheetFunction.SUM("D1:D9")Alt Bitiş

Aşağıdaki örnek, D sütununa bir aralık ve F sütununa bir aralık ekleyecektir. Application nesnesini yazmazsanız, olduğu varsayılacaktır.

123 Alt TestSum()Range("D25") = WorksheetFunction.SUM (Range("D1:D24"), Range("F1:F24"))Alt Bitiş

Tek bir hücre aralığı için, hücrelerin önündeki formülde 'Aralık' kelimesini belirtmeniz gerekmediğine dikkat edin, kod tarafından varsayılır. Ancak, birden fazla argüman kullanıyorsanız, bunu yapmanız gerekir.

Bir Değişkene Toplam 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 AssignSumVariable()Sonucu Çift olarak karart'Değişkeni atasonuç = WorksheetFunction.SUM(Aralık("G2:G7"), Aralık("H2:H7"))'Sonucu gösterMsgBox "Aralıkların toplamı " & sonuçAlt Bitiş

Bir Aralık Nesnesini Topla

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

123456789 Alt TestSumRange()Aralık Olarak Karartma'hücre aralığını ataSet rng = Aralık("D2:E10")'formüldeki aralığı kullanAralık("E11") = Çalışma SayfasıFunction.SUM(rng)'aralık nesnesini serbest bırakRng ayarla = Hiçbir şeyAlt Bitiş

Çoklu Aralık Nesnelerini Toplama

Benzer şekilde, birden çok Menzil Nesnesini toplayabilirsiniz.

123456789101112 Alt TestSumMultipleRanges()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ığı kullanAralık("E11") = Çalışma SayfasıFunction.SUM(rngA, rngB)'aralık nesnesini serbest bırakrngA'yı ​​ayarla = Hiçbir şeyrngB'yi ayarla = Hiçbir şeyAlt Bitiş

Tüm Sütun veya Satırın Toplamı

Bir sütunun tamamını veya bir satırın tamamını eklemek için Sum işlevini de kullanabilirsiniz.

Aşağıdaki bu prosedür, D sütunundaki tüm sayısal hücreleri toplayacaktır.

123 Alt TestSum()Range("F1") = WorksheetFunction.SUM(Range("D:D")Alt Bitiş

Aşağıdaki bu prosedür, Satır 9'daki tüm sayısal hücreleri toplayacaktır.

123 Alt TestSum()Aralık("F2") = Çalışma SayfasıFunction.SUM(Range("9:9")Alt Bitiş

Dizi Topla

Bir dizideki değerleri toplamak için WorksheetFunction.Sum'u da kullanabilirsiniz.

123456789101112 Alt TestArray()Dim intA(1 - 5) Tamsayı OlarakTamsayı olarak Dim SumArray'diziyi doldurintA(1) = 15intA(2) = 20intA(3) = 25intA(4) = 30intA(5) = 40'diziyi topla ve sonucu gösterMsgBox Çalışma SayfasıFunction.SUM(intA)Alt Bitiş

SumIf İşlevini Kullanma

Kullanılabilecek başka bir çalışma sayfası işlevi, SUMIF işlevidir.

123 Alt TestSumIf()Aralık("D11") = Çalışma SayfasıFunction.SUMIF(Aralık("C2:C10"), 150, Aralık("D2:D10"))Alt Bitiş

Yukarıdaki prosedür, yalnızca C sütunundaki karşılık gelen hücre = 150 ise, Aralık(D2:D10) içindeki hücreleri toplayacaktır.

Toplam Formül

kullandığınızda Çalışma SayfasıFonksiyon.SUM çalışma sayfanızdaki bir aralığa toplam eklemek için esnek bir formül değil, statik bir toplam 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, TestSum prosedürü Range(D2:D10)'u ekledi ve sonuç D11'e yerleştirildi. Formül çubuğunda görebileceğiniz gibi, bu sonuç bir rakamdır, formül değil.

Bu nedenle Aralık (D2:D10) içindeki değerlerden herhangi biri değişirse, D11'deki sonuç OLUMSUZ değiştirmek.

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

Formül Yöntemi

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

123 Alt TestToplamFormulaAralık("D11").Formül = "=TOPLA(D2:D10)"Alt Bitiş

FormulaR1C1 Yöntemi

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 TestSumFormula()Aralık("D11").FormulaR1C1 = "=SUM(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 TestSumFormula()ActiveCell.FormulaR1C1 = "=TOPLA(R[-9]C:R[-1]C)"Alt Bitiş

Çalışma sayfanızın neresinde olursanız olun, formül doğrudan onun üzerindeki 8 hücreyi toplayacak ve cevabı ActiveCell'inize yerleştirecektir. SUM işlevinin içindeki Aralık'a, 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 D11'de değer yerine formül olacak.

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

wave wave wave wave wave