我知道这很愚蠢,但经过一个小时的搜索后我仍然找不到答案。
我正在尝试确定某个值(客户名称)是否为NA;我尝试了以下两种方法
Customername = Worksheets("Request").Range("E5")
If IsNA(Customername.value) = True Then CustomerN = 1
CustomerN = Ifna(Customername,1)
两行都返回错误,指出“Sub of Function not defined”。令人沮丧的是它识别功能,因为它改变了大写,但它仍然会中断。我尝试将CustomerName调整为不同的类型,但似乎并不重要。
如果你能在我的思考过程中解释错误,我会很感激。
答案 0 :(得分:2)
这是一个工作表函数,所以你必须通过添加Application.worksheetfunction向vba解释这个 - 就像这样:
Application.WorksheetFunction.IsNA(Customername.value)
答案 1 :(得分:0)
除非您需要专门检查#N/A
错误,否则您可以使用本机可用的ISERROR功能。需要注意的是ISERROR
将检查任何错误,而不仅仅是#N/A
。
(如果你需要专门检查#N/A
,Pavel_V的回答是正确的。)
从链接:
Syntax
ISERROR(value)
Function Returns TRUE if
ISERROR Value refers to any error value (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!).
你可以像这样使用它:
If IsError(Customer.Value) Then
TechOnNet的其他信息。