如何检查多单元格范围是否包含任何错误?

时间:2013-05-30 05:17:30

标签: excel-vba vba excel

如何使用VBA检查Excel中的范围是否包含任何#N / A或其他类型的错误?我知道如何为单个细胞做到这一点:

IsError(Sheets("Main").Range("B1").value

但对多细胞范围也这样做:

IsError(Sheets("Main").Range("A12:N32").value)

没有发现错误。如果我在工作表的一个单元格中使用IsError函数作为公式,它可以正常工作并选择错误:

=ISERROR(A12:N32)

先谢谢。

1 个答案:

答案 0 :(得分:1)

请打开新工作簿并尝试以下代码。
这将向A列写入3个值,然后遍历该列并在发生错误时显示msgbox。试试吧!

Option Explicit

Sub Throw_Errors()
    Dim ws As Worksheet, rng As Range, i&: Set ws = Sheets(1)
    ws.Range("A2") = "=100/0"
    ws.Range("A3") = "=A2/0"
    ws.Range("A4") = "=100/10"
    For i = 2 To ws.Range("A" & Rows.Count).End(xlUp).Row
        Set rng = ws.Range("A" & i)
        If IsError(rng) Then MsgBox "error in row" & rng.Row
        Set rng = Nothing
    Next i
End Sub

如果您想了解如何检查不同类型的错误,请查看this answer