【问题标题】:How can I check if a Multi-Cell Range contains any errors?如何检查多单元格范围是否包含任何错误?
【发布时间】:2013-05-30 05:17:29
【问题描述】:

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

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

但对多单元格范围执行相同操作:

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

不会发现错误。如果我在工作表的一个单元格中使用 IsError 函数作为公式,它会起作用并找出错误:

=ISERROR(A12:N32)

提前致谢。

【问题讨论】:

  • 试试这个Set Rng = Sheets("Main").Range("A12:N32").SpecialCells(xlCellTypeFormulas, xlErrors)
  • @Santosh 如果范围内没有Errors,此命令返回错误,代码停止运行!
  • 您可以使用错误处理。参考这个link

标签: excel vba


【解决方案1】:

请打开一个新工作簿并尝试下面的代码。
这会将 3 个值写入 A 列,然后遍历该列并在发生错误时显示一个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多