簡體   English   中英

MS Excel。 VBA函數返回#value

[英]MS Excel. VBA function returns #value

如果有人可以解釋是什么原因導致函數返回#value錯誤,那就太好了。

Public Function papild(x)
    Dim Sum As Double, A As Double, pi As Double,
    Sum = 0.5 - (x - pi / 4)
    A = -(x - pi / 4)
    pi = Application.WorksheetFunction.pi()
    Dim k As Integer, i As Integer
    k = 2
    i = 0
    Do While Abs(A) > 0.0001
        A = -A * 4 * A * A / (k + i) * (k + i + 1)
        Sum = Sum + A
        k = k + 1
        i = i + 1
    Loop
    paplid = Sum
End Function

函數從MS Excel單元格獲取x值,它等於= -1.5708(= -PI()/ 2 @Formula Bar)

在第3行和第4行中,在將變量pi設置在第5行中之前使用變量pi ...

您的公式中是否可能缺少括號。 它基本上說:

A = -4A^3 * (k+i+1)/(k+1)

這顯然漂移到+/-無限,因此您的循環無法結束。

在第二行中也有一個逗號,在最后一行中有一個拼寫錯誤(拼寫而不是papild)。

您是否嘗試過調試代碼? 當我運行代碼時,我在@ x = -1.5708開始的while循環的第6次迭代中遇到溢出錯誤。 數字變大以適合變量內部。除此之外,還有一些小問題:缺少為Double

Public Function papild(x) As Double

最后加上不必要的逗號

Dim Sum As Double, A As Double, pi As Double,

暫無
暫無

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

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