Come utilizzare sum in excel tramite vba?

In Excel, puoi utilizzare VBA per calcolare la somma dei valori da un intervallo di celle o più intervalli. E, in questo tutorial, impareremo i diversi modi in cui possiamo usarlo.

Somma in VBA utilizzando WorksheetFunction

In VBA è possibile utilizzare diverse funzioni , ma non esiste una funzione specifica per questo scopo. Ciò non significa che non possiamo fare una somma. In VBA esiste una proprietà chiamata WorksheetFunction che può aiutarti a chiamare funzioni nel codice VBA.

sum-in-vba-utilizzando-foglio di calcolo

Considera la somma dei valori nell’intervallo A1:A10.

  1. Per prima cosa inserisci la proprietà della funzione del foglio di lavoro, quindi seleziona la funzione SOMMA dall’elenco.
    enter-worksheet-function
  2. Successivamente, devi inserire una parentesi iniziale come fai quando inserisci una funzione nel foglio di calcolo.
    starting-parenthesis
  3. Successivamente, dobbiamo utilizzare l’ oggetto intervallo per fare riferimento all’intervallo per il quale vogliamo calcolare la somma.
    use-the-range-object
  4. Alla fine, digita una parentesi di chiusura e assegna il valore restituito dalla funzione alla cella B1.
    closing-parenthesis
 Range ("B1") = Application.WorksheetFunction.Sum(Range("A1:A10"))

Ora quando esegui questo codice calcola la somma dei valori che hai nell’intervallo A1: A10 e inserisci il valore nella cella B1.

eseguire il codice per calcolare

Somma dei valori di un’intera colonna o riga

In questo caso, specifica semplicemente una riga o una colonna invece dell’intervallo utilizzato nell’esempio precedente.

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

Utilizzare VBA per aggiungere valori di selezione

Supponiamo ora di voler sommare solo il valore delle celle selezionate poiché puoi utilizzare un codice come questo.

 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

Nel codice precedente, abbiamo utilizzato la selezione, quindi l’abbiamo specificata nella variabile “sRange”, quindi abbiamo utilizzato l’indirizzo di questa variabile intervallo per ottenere la somma.

Somma VBA di tutte le celle sopra

Il codice seguente estrae tutte le celle, somma i valori e inserisce il risultato nella cella selezionata.

 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

Aggiungi gamma dinamica utilizzando VBA

Allo stesso modo, puoi utilizzare l’intervallo dinamico mentre usi VBA per aggiungere valori.

 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

Aggiungi una colonna o una riga dinamica

Allo stesso modo, se desideri utilizzare una colonna dinamica, puoi utilizzare il seguente codice che prenderà la colonna della cella attiva e sommerà tutti i valori che hai lì.

 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

E per una fila.

 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

Utilizza SOMMA.SE con VBA

Proprio come la somma, puoi utilizzare la funzione SOMMA.SE per aggiungere valori con criteri come nell’esempio seguente.

sumif-con-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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *