Hoe gebruik je sum in excel via vba?

In Excel kunt u VBA gebruiken om de som van waarden uit een celbereik of meerdere bereiken te berekenen. En in deze tutorial gaan we de verschillende manieren leren waarop we het kunnen gebruiken.

Som op in VBA met behulp van WorksheetFunction

In VBA zijn er verschillende functies die u kunt gebruiken, maar er is geen specifieke functie hiervoor. Dit betekent niet dat we geen bedrag kunnen maken. In VBA is er een eigenschap genaamd WorksheetFunction waarmee u functies in VBA-code kunt aanroepen.

som-in-vba-met-spreadsheet

Beschouw de som van de waarden in het bereik A1:A10.

  1. Voer eerst de eigenschap van de werkbladfunctie in en selecteer vervolgens de functie SOM in de lijst.
    enter-worksheet-function
  2. Vervolgens moet u een haakje beginnen in te voeren, net zoals u dat doet bij het invoeren van een functie in het werkblad.
    starting-parenthesis
  3. Daarna moeten we het bereikobject gebruiken om te verwijzen naar het bereik waarvoor we de som willen berekenen.
    use-the-range-object
  4. Typ aan het einde een haakje sluiten en wijs de retourwaarde van de functie toe aan cel B1.
    closing-parenthesis
 Range ("B1") = Application.WorksheetFunction.Sum(Range("A1:A10"))

Wanneer u deze code nu uitvoert, wordt de som berekend van de waarden die u in het bereik A1:A10 heeft en voert u de waarde in cel B1 in.

voer de code uit om te berekenen

Som van waarden van een hele kolom of rij

In dit geval geeft u gewoon een rij of kolom op in plaats van het bereik dat we in het vorige voorbeeld hebben gebruikt.

 ' 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"))

Gebruik VBA om selectiewaarden toe te voegen

Stel nu dat u alleen de waarde van de geselecteerde cellen wilt optellen, omdat u deze code kunt gebruiken.

 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

In de bovenstaande code gebruikten we de selectie en specificeerden deze vervolgens in de variabele “sRange”. Vervolgens gebruikten we het adres van deze bereikvariabele om de som te verkrijgen.

VBA-som van alle bovenstaande cellen

De volgende code extraheert alle cellen en somwaarden en voert het resultaat in de geselecteerde cel in.

 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

Voeg dynamisch bereik toe met VBA

En op dezelfde manier kunt u dynamisch bereik gebruiken terwijl u VBA gebruikt om waarden toe te voegen.

 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

Voeg een dynamische kolom of rij toe

Op dezelfde manier kunt u, als u een dynamische kolom wilt gebruiken, de volgende code gebruiken die de kolom van de actieve cel neemt en alle waarden optelt die u daar heeft.

 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

En voor een rij.

 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

Gebruik SUMIF met VBA

Net als som kun je de functie SOM.ALS gebruiken om waarden toe te voegen met criteria zoals in het volgende voorbeeld.

sumif-met-vba
 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

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *