如何检查Excel单元格是否包含REF! VBA中的错误

时间:2016-01-11 09:01:43

标签: vba ref

我发现很多关于如何在Excel中进行的讨论,但我的目标是捕获REF! VBA中的错误,而不是Excel本身。有可能吗?

2 个答案:

答案 0 :(得分:5)

If IsError(cell.Value) Then
    If cell.Value = CVErr(xlErrName) Then
        ...
    End If
End If

原始代码错误,如果单元格不包含错误,则会出现“类型不匹配”错误。

If cell.Value = CVErr(xlErrRef) Then
    ...
End If

答案 1 :(得分:2)

Sub CheckRef()
Dim CheckRange As Range, CheckCell As Range

    Set CheckRange = [A1:D10]                ' as per app

    For Each CheckCell In CheckRange
    If IsError(CheckCell) And _
       CVErr(CheckCell) = CVErr(2023) Then ' 2023 --> xlErrRef
            MsgBox ("#REF! in  " & CheckCell.AddressLocal)
            Exit Sub                     ' exit after first #REF! found
        End If
    Next CheckCell
End Sub

例如

  • 输入" = 1/0"在B2中创建一个与" #REF!"
  • 不同的错误
  • 在B4,B5
  • 中输入1
  • 输入" = B4 + B5"在B7
  • 删除第4行
  • 运行Sub CheckRef()

enter image description here