В этой статье мы создадим настраиваемую функцию для вычисления суммы ячеек в заданном диапазоне для всех листов в книге.

Исходные данные для этого примера состоят из нескольких листов. Каждый лист содержит данные отдела продаж, в том числе имя продавца и количество товаров, проданных им на дату, указанную в названии листа.

Данные о продажах представлены в диапазоне A6: B16 в одинаковой последовательности на всех листах.

ArrowRaw

На «Основном» листе нам нужно общее количество продаж, выполненных разными продавцами. Чтобы рассчитать общее количество продаж, нам нужно сложить количество продаж со всех листов в книге.

ArrowMain

Мы использовали пользовательскую функцию SumRangeOfAllSheets для расчета общего количества продаж, сделанных разными продавцами. Специальная функция SumRangeOfAllSheets принимает диапазон в качестве входных данных.

ArrowOutput

Логическое объяснение

Мы создали настраиваемую функцию SumRangeOfAllSheets для вычисления суммы значений в ячейках в заданном диапазоне для всех листов в книге. Специальная функция SumRangeOfAllSheets принимает диапазон в качестве входных данных. Эта функция добавляет значения в ячейки определенного диапазона всех листов.

Объяснение кода

WorksheetFunction.Sum Объект WorksheetFunction используется для доступа к функциям листов Excel из Visual Basics. Мы использовали функцию СУММ листа Excel, чтобы сложить значения в диапазоне.

InputRange.Address Указанный выше код используется для возврата адреса указанного диапазона объектом диапазона «InputRange».

Пожалуйста, введите код ниже

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

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]