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
单元格 A1
、A2
中的内容是参数 Param1
、Param2
的输入。
当单元格 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
我有一个 Excel 2016 VBA UDF(用户定义函数)看起来像这样;
Public Function AddUDF(Param1 As Single, Param2 As Single)
'Code implementation
End Function
单元格 A1
、A2
中的内容是参数 Param1
、Param2
的输入。
当单元格 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