In questo articolo creeremo una funzione personalizzata per generare il totale per la gamma dinamica.

I dati grezzi per questo articolo sono costituiti da numeri casuali.

ArrowMain

In questo esempio, vogliamo calcolare la somma dei valori in tutte le celle di ogni colonna. Ogni colonna ha un numero di valori diverso.

Abbiamo creato una funzione personalizzata “DynaSum” per calcolare la somma dei valori in tutte le celle.

ArrowOutput

La funzione personalizzata “DynaSum” calcola la somma dei valori di tutte le celle consecutive. Questa funzione sommerà tutti i valori finché non viene rilevata una cella vuota.

Se aggiungiamo un valore aggiuntivo sopra i valori definiti, tali valori verranno aggiunti automaticamente.

ArrowSecondOutput

Spiegazione del codice

Set Rng = Application.Caller Il codice sopra viene utilizzato per assegnare la cella contenente la funzione personalizzata come oggetto Range.

Segui sotto per il codice

Option Explicit

Function DynaSum(Optional Rng As Range)

'Declaring variables

Dim Total As Double

Dim LngRow As Long

Dim LngCol As Integer

'Refresh function when value in worksheet is changed

Application.Volatile

'Assigning range if Range is not specified in the function

If Rng Is Nothing Then

Set Rng = Application.Caller

End If

'Getting the column and row number

LngCol = Rng.Column

LngRow = Rng.Row - 1

'Looping through all the cells in the column until blank cell is encountered

Do Until IsEmpty(Cells(LngRow, LngCol))

Total = Total + Cells(LngRow, LngCol)

LngRow = LngRow - 1

If LngRow = 1 Then Exit Do

Loop

'Getting output

DynaSum = Total

End Function

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]