IsNa Sub或函数未定义

时间:2016-04-05 13:22:28

标签: excel vba excel-vba

我知道这很愚蠢,但经过一个小时的搜索后我仍然找不到答案。

我正在尝试确定某个值(客户名称)是否为NA;我尝试了以下两种方法

Customername = Worksheets("Request").Range("E5")
If IsNA(Customername.value) = True Then CustomerN = 1
CustomerN = Ifna(Customername,1)

两行都返回错误,指出“Sub of Function not defined”。令人沮丧的是它识别功能,因为它改变了大写,但它仍然会中断。我尝试将CustomerName调整为不同的类型,但似乎并不重要。

如果你能在我的思考过程中解释错误,我会很感激。

2 个答案:

答案 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的其他信息。