如何replace列中的所有错误值

我有一个使用索引和匹配function填充的列,当没有find该值时,会导致一个N / A值。 我希望能够通过一个特殊的值来replace列中的所有这些错误值。 我想在VBA代码中做到这一点。 任何帮助?

我不想用IF逻辑重写函数。

你真的可以做到这一点没有VBA,通过以下几点:

IFERROR(myIndexMatchFormula,"special value")

如果您确实需要VBA解决scheme,请尝试如下所示。 它会find你的范围内的所有错误单元格,并用你select的东西取代。 没有If语句,没有循环!

 Option Explicit Sub replaceErrors() Dim rng As Range On Error Resume Next Set rng = Range("A1:A10").SpecialCells(xlCellTypeFormulas, 16) ' -> replace with your specific range rng.Value = "special values" '-> place what you want here On Error GoTo 0 End Sub 

作为一个例子, Columns("E").SpecialCells(xlCellTypeFormulas, xlErrors).Value = ""可以代替列E中的所有错误。 然而,不幸的是,specialcells总是抛出一个错误,如果它什么都没发现,所以你必须通过一些错误来捕获这个on error ...

如果r是需要检查的范围,则可以始终使用以下内容来确定单元格中的值是否为“N / A”

 If r.Value = CVErr(xlErrNA) Then ... ' do something Else ... ' do something else Endif