繁体   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