我希望使用VBA函数计算两个(2)命名范围中差值的绝对值之和。下面的公式计算了两个(2)范围内差异的总和,但我很难得到范围内差异之和的绝对值。
我已经尝试了任意数量的组合ABS
,甚至平方根的平方没有运气。结果给出了用户定义函数中的一个错误。
'Volatility Calculation
Rng0 = WorksheetFunction.Sum(Range(N0Addr)) - WorksheetFunction.Sum(Range(N1Addr))
Rng0
是一个用于计算平滑因子的分数分母中的值。上面Rng0
的输出为差异之和提供了正确的值,但我正在寻找VBA公式中差异之和的绝对值。提前谢谢你。
发布于 2019-05-13 21:39:44
如果您试图对范围进行求和,然后计算绝对值以得到差值,则如下所示:
Rng0 = Abs(WorksheetFunction.Sum(Range(N0Addr))) - Abs(WorksheetFunction.Sum(Range(N1Addr)))
但是如果你想得到范围内每个单元格的绝对值,把它和起来,然后得到你必须在范围内迭代的差值,用一个循环得到abs值的和,然后减去这两个值。
编辑:这里有一个简单的循环,它可以完成公式所做的工作。顺便说一句,公式在后台做的是完全相同的事情,它使用一个循环来计算和积。
简单自定义功能:
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
https://stackoverflow.com/questions/56119685
复制相似问题