簡體   English   中英

用戶定義函數,For循環返回“#VALUE!”錯誤

[英]User Defined Function with For loop returning “#VALUE!” error

我正在嘗試創建一個用戶定義的函數,它返回給定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! 錯誤。 似乎每個工作表函數都在整個循環中恢復正確的輸入,所以我不明白為什么它會返回錯誤。

來自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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM