两(2)范围内的差异的绝对值

时间:2019-05-13 20:48:29

标签: excel vba range

我正在寻找使用VBA函数计算两(2)个命名范围之差的绝对值的总和。下面的公式计算两个(2)范围内的差异之和,但是我很难获得范围内差异之和的绝对值。

我尝试了ABS的任何组合,甚至没有运气的平方根。结果使用户定义的函数出错。

'Volatility Calculation

Rng0 = WorksheetFunction.Sum(Range(N0Addr)) - WorksheetFunction.Sum(Range(N1Addr))

Rng0是要在计算平滑因子的分数的分母中使用的值。上面Rng0的输出为差异之和提供了正确的值,但是我正在VBA公式中寻找差异之和的绝对值。预先谢谢你。

1 个答案:

答案 0 :(得分:0)

如果您尝试对范围求和,然后计算绝对值以获得差值,则它看起来像这样:

Rng0 = Abs(WorksheetFunction.Sum(Range(N0Addr))) - Abs(WorksheetFunction.Sum(Range(N1Addr)))

但是,如果您要获取该范围内每个单元的绝对值,请将其求和,然后求出差值,则必须在该范围内进行迭代,以使用循环获得绝对值的总和,然后减去两个

编辑:这是一个执行您的公式的简单循环。顺便说一句,公式在后台执行完全相同的操作,它使用循环来计算和积。

简单的自定义功能:

Public Function MyFunction(r1 As Range, r2 As Range)

    For i = 1 To r1.Count
        MyFunction = MyFunction + Abs(r1(i) - r2(i))
    Next

End Function