Sum excel'de vba aracılığıyla nasıl kullanılır?

Excel’de, bir hücre aralığından veya birden çok aralıktan değerlerin toplamını hesaplamak için VBA’yı kullanabilirsiniz. Ve bu derste onu kullanabileceğimiz farklı yolları öğreneceğiz.

WorksheetFunction kullanarak VBA’da toplama

VBA’da kullanabileceğiniz çeşitli işlevler vardır ancak bu amaç için özel bir işlev yoktur. Bu, bir miktar yapamayacağımız anlamına gelmez. VBA’da, VBA kodundaki işlevleri çağırmanıza yardımcı olabilecek WorksheetFunction adlı bir özellik vardır.

vba-kullanarak-elektronik tablodaki toplam

A1:A10 aralığındaki değerlerin toplamını düşünün.

  1. Önce çalışma sayfası işlev özelliğini girin, ardından listeden TOPLA işlevini seçin.
    enter-worksheet-function
  2. Daha sonra, e-tabloya bir fonksiyon girerken yaptığınız gibi bir başlangıç parantezi girmelisiniz.
    starting-parenthesis
  3. Bundan sonra toplamını hesaplamak istediğimiz aralığı ifade etmek için range nesnesini kullanmamız gerekiyor.
    use-the-range-object
  4. Sonunda bir kapatma parantezi yazın ve işlevin dönüş değerini B1 hücresine atayın.
    closing-parenthesis
 Range ("B1") = Application.WorksheetFunction.Sum(Range("A1:A10"))

Artık bu kodu çalıştırdığınızda A1:A10 aralığında sahip olduğunuz değerlerin toplamını hesaplıyor ve değeri B1 hücresine giriyorsunuz .

hesaplamak için kodu çalıştırın

Bir sütunun veya satırın tamamının değerlerinin toplamı

Bu durumda önceki örnekte kullandığımız aralık yerine bir satır veya sütun belirtmeniz yeterlidir.

 ' for the entire column A Range ("B1") = Application.WorksheetFunction.Sum( Range ("A:A")) ' for entire row 1 Range ("B1") = Application.WorksheetFunction.Sum( Range ("1:1"))

Seçim değerleri eklemek için VBA’yı kullanın

Şimdi, bunun gibi bir kod kullanabildiğiniz için yalnızca seçili hücrelerin değerini toplamak istediğinizi varsayalım.

 Sub vba_sum_selection() Dim sRange As Range Dim iSum As Long On Error GoTo errorHandler Set sRange = Selection iSum = WorksheetFunction.Sum(Range(sRange.Address)) MsgBox iSum errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Yukarıdaki kodda seçimi kullandık, ardından “sRange” değişkeninde belirttik, ardından toplamı elde etmek için bu range değişkeninin adresini kullandık.

Yukarıdaki tüm hücrelerin VBA toplamı

Aşağıdaki kod tüm hücreleri ve toplam değerleri çıkarır ve sonucu seçilen hücreye girer.

 Sub vba_auto_sum() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection. End (xlUp). End (xlUp).Address iLast = Selection. End (xlUp).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Sum(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

VBA kullanarak dinamik aralık ekleme

Benzer şekilde, değer eklemek için VBA’yı kullanırken dinamik aralığı kullanabilirsiniz.

 Sub vba_dynamic_range_sum() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection.Offset(1, 1).Address iLast = Selection.Offset(5, 5).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Sum(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Dinamik bir sütun veya satır ekleme

Benzer şekilde dinamik bir sütun kullanmak istiyorsanız, aktif hücrenin sütununu alıp orada sahip olduğunuz tüm değerleri toplayacak aşağıdaki kodu kullanabilirsiniz.

 Sub vba_dynamic_column() Dim iCol As Long On Error GoTo errorHandler iCol = ActiveCell.Column MsgBox WorksheetFunction.Sum(Columns(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Ve bir sıra için.

 Sub vba_dynamic_row() Dim iRow As Long On Error GoTo errorHandler iRow = ActiveCell.Row MsgBox WorksheetFunction.Sum(Rows(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

SUMIF’i VBA ile kullanma

Toplamda olduğu gibi, aşağıdaki örnekteki gibi kriterlere sahip değerler eklemek için ETOPLA fonksiyonunu kullanabilirsiniz.

vba ile sumif
 Sub vba_sumif() Dim cRange As Range Dim sRange As Range Set cRange = Range ("A2:A13") Set sRange = Range ("B2:B13") Range ("C2") = _ WorksheetFunction.SumIf(cRange, "Product B", sRange) End Sub

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir