|在本文中,我们将创建一个自定义函数来生成动态范围的总计。

本文的原始数据由随机数组成。

ArrowMain

在此示例中,我们要计算每列中所有单元格的值之和。每列具有不同数量的值。

我们创建了一个自定义函数“ DynaSum”来计算所有单元格中的值之和。

ArrowOutput

自定义函数“ DynaSum”计算所有连续单元格的值之和。此函数将求和所有值,直到遇到空白单元格。

如果我们在定义的值之上添加任何其他值,则这些值将自动添加。

ArrowSecondOutput

代码说明

设置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]