vba - 分贝计算器? VBA函数编写

标签 vba excel decibel

所以我有非常具体的任务。我想创建一个将分贝单位相加的函数。目前,您必须输入类似

的内容

=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

其中第一个参数是输入范围,第二个参数是输入数量:

enter image description here

编辑#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/

相关文章:

vba - 如何告诉 Excel/VBA 清除安全凭证?

excel - 如何让 VBA 宏在整个工作簿的公式中执行搜索/替换?

vba - 尝试获取单元格 AI 和 BM 的值时出现错误 1004

c# - 在 Excel 中更改 CellValue 中文本的字体颜色 - OpenXml

excel - xla 与 xlam addin,有什么区别?

excel - Excel中的VBA范围可以操作吗?

python - Openpyxl 无法读取 xlsx 文件,但如果我保存文件,它会打开

javascript - 网络音频的分贝值

javascript - WebAudio API麦克风分贝阈值/门控(麦克风输入过于敏感)

Android 如何找到分贝