簡體   English   中英

Excel VBA函數錯誤

[英]Excel VBA function error

我在模塊中編寫以下代碼:

Public Function first()
If (x + 1 < 0) Or (1 - 2 * Sin(x) < 0) Or Sqr(1 - 2 * Sin(x)) = 0 Then
first = "error"
Else
first = Sqr(x + 1) / Sqr(1 - 2 * Sin(x))
End If
End Function

它給出某些值的錯誤:

在此處輸入圖片說明

問題出在哪兒?

我很確定您的意圖是評估Sin(x) ,其中x為單位(如果除了以弧度(不是0整數)進行評估的原因,除其他原因外,這很罕見),但是函數Sin(x)與弧度一起使用。 您可以使用函數Randians()修復此問題:

Public Function first(ByVal x As Double) As Double
    x = Application.Radians(x)
    If (x + 1 < 0) Or (1 - 2 * Sin(x) < 0) Or Sqr(1 - 2 * Sin(x)) = 0 Then
        first = "error"
    Else
        first = Sqr(x + 1) / Sqr(1 - 2 * Sin(x))
    End If
End Function

然后,例如, first(7)評估為1.218130941

x7時Sin(x)等於0.656986598718789

將其插入公式1 - 2 * Sin(x) ,得到-0.313973197437578

您不能取Sqr(...)平方根(即Sqr(...) )。 我建議添加Abs(...)作為包裝以保證有一個正數,但我不知道您最終要完成什么。

暫無
暫無

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

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