当我尝试使用我在Excel电子表格中定义的VBA函数时,我得到“那不是一个有效的函数”

时间:2009-05-21 16:27:15

标签: excel vba excel-vba

我在VBA中定义了一个函数,如下所示

Public Function Distance(X, Y) as Double

然后在一个单元格中我尝试使用该功能。我输入“@Dis”并进入下拉菜单,选择该功能,然后在单元格中输入以@Distance(A1,A2)结尾的参数。

当我按Enter键时,我收到错误“该功能无效”。

我在整个系统中启用了宏,尝试将其保存为旧格式和启用宏的工作簿格式无效。

我对此功能的使用有什么问题?

3 个答案:

答案 0 :(得分:6)

尝试使用:

=Distance(A1, A2)

而不是

@Distance(A1, A2)

我从来没有见过@作为在Excel中调用函数的正确字符。

我在Excel中尝试了以下操作,它就像一个魅力:

  

在Module1中:

Public Function Distance(X as Double, Y as Double) as Double
    Distance = 10
End Function
  

在一个单元格中:

=Distance(A1, A2)

产生结果:

  

10

正如所料。

答案 1 :(得分:6)

您还需要确保您的功能的VBA代码位于模块中,而不是在工作表的代码区域中。

答案 2 :(得分:3)

请勿使用保留字作为功能名称。我尝试了一个名称Parse()并将其踢回去,直到我将其重命名为ParseString()。