Genera totale per l’area dinamica con VBA in Microsoft Excel
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.
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.
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.
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]