我有一个使用索引和匹配函数填充的列,当找不到该值时,它会导致 N/A 值。我希望能够用特殊值替换列中的所有此类错误值。我想在 VBA 代码中执行此操作。有什么帮助吗?
我不想用 IF 逻辑重写函数。
你真的可以在没有 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
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