用户定义的函数,其中For循环返回“ #VALUE!”错误

时间:2019-05-14 09:54:54

标签: excel vba

我正在尝试创建一个用户定义的函数,该函数返回给定x和n的Irwin-Hall分布的值。

我已经成功地使用表格为每个n值计算了适当的值,并计算了Irwin-Hall系列的相应项。以我的理解,执行此操作的步骤与我的代码应该执行的操作相同。

Function IRWINHALLPDF(x As Double, n As Integer)

Dim IH As Double
Dim k As Integer


IH = 0


For k = 0 To n
    IH = IH + (-1) ^ k * WorksheetFunction.Combin(n, k) * (x - k) ^ (n - 1) * WorksheetFunction.Sign(x - k)
    Next k

    IH = IH / (2 * WorksheetFunction.Fact(n - 1))
    IRWINHALLPDF = IH

End Function

在工作表中使用时,该函数返回#VALUE!错误。似乎每个工作表函数在整个循环中都在接收正确的输入,因此我看不到为什么它会返回错误。

1 个答案:

答案 0 :(得分:0)

Axel Richter的答案,符号功能出错

Function IRWINHALLPDF(x As Double, n As Integer) As Double

Dim IH As Double
Dim k As Integer


IH = 0


For k = 0 To n
    IH = IH + (-1) ^ k * WorksheetFunction.Combin(n, k) * (x - k) ^ (n - 1) * Sgn(x - k)
Next k

IH = IH / (2 * WorksheetFunction.Fact(n - 1))
IRWINHALLPDF = IH


End Function