如何替换列中的所有错误值

时间:2012-10-03 12:59:52

标签: excel vba excel-vba

我有一个使用索引和匹配函数填充的列,当找不到该值时,它会产生N / A值。我希望能够通过特殊值替换列中的所有此类错误值。我想在VBA代码中执行此操作。有什么帮助吗?

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

3 个答案:

答案 0 :(得分:5)

你真的可以在没有VBA的情况下做到这一点,具体如下:

IFERROR(myIndexMatchFormula,"special value")

如果您确实需要VBA解决方案,请尝试以下内容。它将找到您范围内的所有错误单元格,并替换为您选择的内容。没有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

答案 1 :(得分:1)

Columns("E").SpecialCells(xlCellTypeFormulas, xlErrors).Value = "" 例如,可以替换E列中的所有错误。 但是,遗憾的是,如果没有找到任何内容,特殊单元总是会抛出错误,因此必须通过某些on error ...

来捕获此错误

答案 2 :(得分:0)

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

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