VBA 用户定义的函数不是 运行 因为参数输入无效

VBA user-defined function not run because of invalid argument input

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

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

单元格 A1A2 中的内容是参数 Param1Param2 的输入。

当单元格 A1 和 A2 包含数字时,UDF 运行 正常如预期。当其中一个单元格包含字符串 "N.A" 时,此 UDF 不是 运行 并且返回值 #VALUE!。我知道UDF不是运行,因为我在UDF里面下了断点,断点根本就没有到。

如何将 UDF 获取到 运行?

将您的参数设置为 Single 它告诉 Excel 除了数字之外不接受任何东西。

将参数更改为变体然后测试以确保您想要的类型:

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