VBA中的简单用户定义函数不适用于Excel 2010

时间:2016-03-02 14:40:38

标签: vba excel-vba excel

我正在尝试创建一些用户定义的函数,但它们都会导致#Value!错误。

我的微距已启用。我甚至添加了Application.Volatile(如某些帖子所示)。什么都行不通。

这些是我的一些陈述,它们都会导致同样的错误。 1)

Function Excer1(x)
    Application.Volatile
    Excer1(x) = x ^ 2 - 3
End Function

2)

Function Excer2(x)
    Application.Volatile
    Excer2(x) = Sqr(2 * x ^ 2) + 2 * x
End Function

3)

Function Excer3a(x1, x2)
    Excer3a(x1, x2) = Log(x2 / x1)
End Function

3 个答案:

答案 0 :(得分:2)

您的返回行不正确 - 不应包括括号和参数:

Function Excer1(x)
    Application.Volatile
    Excer1 = x ^ 2 - 3
End Function

Function Excer2(x)
    Application.Volatile
    Excer2 = Sqr(2 * x ^ 2) + 2 * x
End Function

Function Excer3a(x1, x2)
    Excer3a = Log(x2 / x1)
End Function

答案 1 :(得分:0)

非常关闭:

Function Excer1(x)
    Application.Volatile
    Excer1 = x ^ 2 - 3
End Function
'2)

Function Excer2(x)
    Application.Volatile
    Excer2 = Sqr(2 * x ^ 2) + 2 * x
End Function
'3)

Function Excer3a(x1, x2)
    Excer3a = Log(x2 / x1)
End Function

答案 2 :(得分:0)

解决。在定义函数时,我不应该包含变量(在本例中为“x”):

更正版本:

Function Excer1(x)
Application.Volatile
Excer1 = x ^ 2 - 3
End Function

Function Excer2(x)
Application.Volatile
Excer2 = Sqr(2 * x ^ 2) + 2 * x
End Function

Function Excer3a(x1, x2)
Excer3a = Log(x2 / x1)
End Function