Generar total de área dinámica utilizando VBA en Microsoft Excel
En este artículo, crearemos una función personalizada para generar el total del rango dinámico.
Los datos brutos de este artículo consisten en números aleatorios.
En este ejemplo, queremos calcular la suma de valores en todas las celdas de cada columna. Cada columna tiene un número diferente de valores.
Hemos creado una función personalizada «DynaSum» para calcular la suma de valores en todas las celdas.
La función personalizada «DynaSum» calcula la suma de los valores de todas las celdas consecutivas. Esta función sumará todos los valores hasta que se encuentre una celda en blanco.
Si agregamos cualquier valor adicional por encima de los valores definidos, esos valores se agregarán automáticamente.
Explicación del código
Set Rng = Application.Caller El código anterior se usa para asignar la celda que contiene la función personalizada como objeto Range.
Siga el código a continuación
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
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]