由于无效的参数输入,VBA用户定义的函数无法运行

时间:2017-09-08 15:04:24

标签: excel vba excel-vba user-defined-functions excel-2016

我有一个Excel 2016 VBA UDF(用户定义的函数),看起来像这样;

Public Function AddUDF(Param1 As Single, Param2 As Single)
    'Code implementation
End Function

单元格A1中的内容,A2是参数Param1Param2的输入。

当单元格A1和A2包含数字时,UDF按预期正常运行。当其中一个单元格包含诸如“N.A”的字符串时,不会运行此UDF并返回值#VALUE!。我知道UDF没有运行,因为我在UDF中放了一个断点,根本没有达到断点。

如何让UDF运行?

1 个答案:

答案 0 :(得分:3)

将参数设置为Single时,它告诉Excel不接受任何数字。

将参数更改为Variant,然后将Test更改为确保所需的类型:

Public Function AddUDF(Param1 As Variant, Param2 As Variant)
    If Not (IsNumeric(Param1) And IsNumeric(Param2)) Then
        AddUDF = "not numbers"
        Exit Function
    End If
    'the rest of your code.
End Function