Funzione di somma VBA (intervalli, colonne e altro)

Questo tutorial ti mostrerà come utilizzare la funzione Somma di Excel in VBA

La funzione somma è una delle funzioni di Excel più utilizzate e probabilmente la prima che gli utenti di Excel imparano a utilizzare. VBA in realtà non ha un equivalente: un utente deve utilizzare la funzione Excel incorporata in VBA usando il Funzione del foglio di lavoro oggetto.

Somma foglio di lavoroFunzione

L'oggetto WorksheetFunction può essere utilizzato per chiamare la maggior parte delle funzioni di Excel disponibili nella finestra di dialogo Inserisci funzione in Excel. La funzione SOMMA è una di queste.

123 Funzione di test secondarioRange("D33") = Application.WorksheetFunction.Sum("D1:D32")Fine sottotitolo

Puoi avere fino a 30 argomenti nella funzione SOMMA. Ciascuno degli argomenti può anche fare riferimento a un intervallo di celle.

Questo esempio di seguito aggiungerà le celle D1 a D9

123 Sub TestSum()Range("D10") = Application.WorksheetFunction.SUM("D1:D9")Fine sottotitolo

L'esempio seguente aggiungerà un intervallo nella colonna D e un intervallo nella colonna F. Se non si digita l'oggetto Application, verrà assunto.

123 Sub TestSum()Intervallo("D25") = FoglioFunzione.SOMMA (Intervallo("D1:D24"), Intervallo("F1:F24"))Fine sottotitolo

Notare che per un singolo intervallo di celle non è necessario specificare la parola "Intervallo" nella formula davanti alle celle, è assunto dal codice. Tuttavia, se si utilizzano più argomenti, è necessario farlo.

Assegnazione di un risultato di somma a una variabile

Potresti voler utilizzare il risultato della tua formula altrove nel codice piuttosto che scriverlo direttamente in Excel Range. In questo caso, puoi assegnare il risultato a una variabile da utilizzare successivamente nel codice.

1234567 Sub AssignSumVariable()Risultato debole come doppio'Assegna la variabilerisultato = Funzione foglio di lavoro.SOMMA(Intervallo("G2:G7"), Intervallo("H2:H7"))'Mostra il risultatoMsgBox "Il totale degli intervalli è " & risultatoFine sottotitolo

Somma un oggetto intervallo

È possibile assegnare un gruppo di celle all'oggetto Range e quindi utilizzare quell'oggetto Range con il pulsante Foglio di lavoroFunzione oggetto.

123456789 Sub TestSumRange()Dim rng come intervallo'assegna l'intervallo di celleImposta rng = Intervallo ("D2: E10")'usa l'intervallo nella formulaIntervallo ("E11") = Funzione foglio di lavoro.SOMMA(rng)'rilascia l'oggetto intervalloImposta rng = NienteFine sottotitolo

Somma più oggetti dell'intervallo

Allo stesso modo, puoi sommare più oggetti intervallo.

123456789101112 Sub TestSumMultipleRanges()Dim rngA come intervalloDim rngB come intervallo'assegna l'intervallo di celleImposta rngA = Intervallo ("D2: D10")Imposta rngB = Intervallo ("E2: E10")'usa l'intervallo nella formulaIntervallo ("E11") = Funzione foglio di lavoro.SOMMA(rngA, rngB)'rilascia l'oggetto intervalloImposta rngA = NienteImposta rngB = NienteFine sottotitolo

Somma intere colonne o righe

Puoi anche usare la funzione Somma per sommare un'intera colonna o un'intera riga

Questa procedura di seguito sommerà tutte le celle numeriche nella colonna D.

123 Sub TestSum()Intervallo("F1") = FunzioneFoglio di Lavoro.SOMMA(Intervallo("D:D")Fine sottotitolo

Mentre questa procedura di seguito aggiungerà tutte le celle numeriche nella riga 9.

123 Sub TestSum()Intervallo("F2") = Funzione Foglio di Lavoro.SOMMA(Intervallo("9:9")Fine sottotitolo

Somma una matrice

Puoi anche usare WorksheetFunction.Sum per sommare valori in una matrice.

123456789101112 Sub TestArray()Dim intA(da 1 a 5) come numero interoDim SumArray As Integer'popola l'arrayintA(1) = 15intA(2) = 20intA(3) = 25intA(4) = 30intA(5) = 40'somma l'array e mostra il risultatoMsgBox WorksheetFunction.SUM(intA)Fine sottotitolo

Utilizzo della funzione SumIf

Un'altra funzione del foglio di lavoro che può essere utilizzata è la funzione SOMMA.SE.

123 Sub TestSumIf()Intervallo("D11") = FunzioneFoglio di Lavoro.SOMMA.SE(Intervallo("C2:C10"), 150, Intervallo("D2:D10"))Fine sottotitolo

La procedura precedente aggiungerà le celle in Intervallo (D2: D10) solo se la cella corrispondente nella colonna C = 150.

Formula somma

Quando usi il Foglio di lavoroFunzione.SUM per aggiungere una somma a un intervallo nel foglio di lavoro, viene restituita una somma statica, non una formula flessibile. Ciò significa che quando le tue cifre in Excel cambiano, il valore che è stato restituito dal Foglio di lavoroFunzione non cambierà.

Nell'esempio sopra, la procedura TestSum ha sommato Range(D2:D10) e il risultato è stato inserito in D11. Come puoi vedere nella barra della formula, questo risultato è una cifra e non una formula.

Se uno qualsiasi dei valori cambia quindi nell'intervallo (D2: D10), il risultato in D11 sarà NON modificare.

Invece di usare il Foglio di lavoroFunzione.SUM, puoi usare VBA per applicare una funzione di somma a una cella usando il Formula o FormulaR1C1 metodi.

Metodo della formula

Il metodo della formula consente di puntare in modo specifico a un intervallo di celle, ad esempio: D2: D10 come mostrato di seguito.

123 Sub TestSumFormulaIntervallo("D11").Formula = "=SOMMA(D2:D10)"Fine sottotitolo

Metodo FormulaR1C1

Il metodo FromulaR1C1 è più flessibile in quanto non ti limita a un determinato intervallo di celle. L'esempio seguente ci darà la stessa risposta di quello sopra.

123 Sub TestSumFormula()Intervallo("D11").FormulaR1C1 = "=SOMMA(R[-9]C:R[-1]C)"Fine sottotitolo

Tuttavia, per rendere la formula più flessibile, potremmo modificare il codice in questo modo:

123 Sub TestSumFormula()ActiveCell.FormulaR1C1 = "=SOMMA(R[-9]C:R[-1]C)"Fine sottotitolo

Ovunque ti trovi nel tuo foglio di lavoro, la formula aggiungerà le 8 celle direttamente sopra di essa e posizionerà la risposta nel tuo ActiveCell. L'Intervallo all'interno della funzione SOMMA deve essere riferito utilizzando la sintassi Riga (R) e Colonna (C).

Entrambi questi metodi consentono di utilizzare formule Excel dinamiche all'interno di VBA.

Ora ci sarà una formula in D11 invece di un valore.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave