所以我有非常具体的任务。我想创建一个将分贝单位相加的函数。目前,您必须输入类似
的内容=10*LOG10(10^(A1/10)+10^(A2/10))
如果您想要将 15 个部分添加到一起,请使其更长。有点痛苦。
理想情况下,它会像 Excel 函数 SUM
一样工作,并且只接受任何输入。有人可以帮我把它放在一起,或者至少告诉我如果你必须从头开始创建 SUM 会是什么样子吗?
最好, 恒天
最佳答案
这个小小的UDF()将为您提供更大的灵 active :
Public Function decibelle(rng As Range, N As Long) As Double
Dim wf As WorksheetFunction, i As Long, Z As Double
Set wf = Application.WorksheetFunction
For i = 1 To N
Z = Z + 10 ^ (rng(i) / 10)
Next i
decibelle = 10 * wf.Log10(Z)
End Function
其中第一个参数是输入范围,第二个参数是输入数量:
编辑#1:
如果您希望UDF()更像SUM(),请考虑:
Public Function decibelle2(rng As Range) As Double
Dim wf As WorksheetFunction, r As Range, Z As Double
Set wf = Application.WorksheetFunction
For Each r In rng
Z = Z + 10 ^ (r.Value / 10)
Next r
decibelle2 = 10 * wf.Log10(Z)
End Function
所以你可以这样使用它:
=decibelle2(A1:A2)
关于vba - 分贝计算器? VBA函数编写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36915510/