Añadir celdas de un rango de todas las hojas de un libro con VBA en Microsoft Excel
En este artículo, crearemos una función personalizada para calcular la suma de celdas en el rango definido para todas las hojas de trabajo en un libro.
Los datos brutos de este ejemplo constan de varias hojas. Cada hoja contiene datos del equipo de ventas, que incluye el nombre del vendedor y la cantidad de artículos vendidos por él en la fecha especificada por el nombre de la hoja.
Los datos de ventas están presentes en el rango A6: B16 en la misma secuencia en todas las hojas de trabajo.
En la hoja «Principal», queremos el número total de ventas realizadas por diferentes vendedores. Para calcular el número total de ventas, tenemos que sumar el número de ventas de todas las hojas del libro de trabajo.
Hemos utilizado la función personalizada «SumRangeOfAllSheets» para calcular el número total de ventas realizadas por diferentes vendedores. La función personalizada “SumRangeOfAllSheets” toma el rango como entrada.
Explicación lógica
Hemos creado la función personalizada «SumRangeOfAllSheets» para calcular la suma de valores en las celdas en el rango definido para todas las hojas de trabajo en el libro de trabajo. La función personalizada “SumRangeOfAllSheets” toma el rango como entrada. Esta función agrega valores en las celdas del rango definido de todas las hojas de trabajo.
Explicación del código
WorksheetFunction.Sum El objeto WorksheetFunction se utiliza para acceder a funciones de hoja de Excel desde Visual Basics. Hemos utilizado la función SUMA de la hoja de Excel para agregar los valores en el rango.
InputRange.Address El código anterior se utiliza para devolver la dirección del rango especificado por el objeto de rango «InputRange».
Siga a continuación el código
Option Explicit Function SumRangeOfAllSheets(InputRange As Range) 'Declaring variables Dim i As Integer Dim Total As Long 'Looping through the sheets in the worksheets collection starting from second sheet For i = 2 To Worksheets.Count 'Calculating the sum for specified range of all the sheets Total = Total + WorksheetFunction.Sum(Worksheets(i).Range(InputRange.Address)) Next SumRangeOfAllSheets = 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]