Генерация общей динамической области с помощью VBA в Microsoft Excel
В этой статье мы создадим пользовательскую функцию для генерации итога для динамического диапазона.
Исходные данные для этой статьи состоят из случайных чисел.
В этом примере мы хотим вычислить сумму значений во всех ячейках каждого столбца. Каждый столбец имеет разное количество значений.
Мы создали специальную функцию «DynaSum» для вычисления суммы значений во всех ячейках.
Пользовательская функция «DynaSum» вычисляет сумму значений всех последовательных ячеек. Эта функция будет суммировать все значения, пока не встретится пустая ячейка.
Если мы добавим какое-либо дополнительное значение сверх определенных значений, эти значения будут добавлены автоматически.
Объяснение кода
Set Rng = Application.Caller Приведенный выше код используется для назначения ячейки, содержащей пользовательскую функцию, в качестве объекта Range.
Пожалуйста, введите код ниже
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
Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.
Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]