Excel VBA查找#N / A

我有一个公式的工作表返回=NA()在某些条件下。 使用VBA,我想find#N / A,但我一直无法调整这个答案 。

 lastrow = .Cells.Find(What:="*", _ After:=.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row 

我试过What:=CVErr(xlErrNA)What:=xlErrNA ,还有What:="#N/A"无济于事。

作为一个额外的困难,我必须考虑到荷兰,所以What:="#N/A"可能甚至不会在荷兰工作。

注意。 我好奇地问这个问题,因为我没有find一个在线方法。 在这一刻,我正在计算哪些单元格包含=NA()

您正在查看单元格公式。 尝试寻找单元格 ,然后我可以得到这个工作使用string“#N / A” What参数:

 lastrow = .Cells.Find(What:="#N/A", _ After:=.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlValues, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row 

请尝试下面的代码,你应该使用循环来读取错误。

子testing()

 If Range("A2").Text = "#N/A" Then MsgBox "hi" End If 

结束小组

您好我有另一个解决scheme,您已经将这些公式的值粘贴到另一列作为文本和

然后使用replace代码,

请尝试下面的代码。

 Sub Tst() Columns("C:C").Select Selection.Copy Range("D1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.Replace What:="#N/A", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub 

列C包含公式值(错误)。

这里的问题是,你正在寻找“#N / A”作为单元格的值,而不是它的错误指示器的值,所以如果你正在试图find一个单元格这个错误给你一个错误,你必须使用这样的东西:

 If WorksheetFunction.IfError("Put here a loop to read the cells;"Error")="Error" then "Write what you desire for cells with error" end if