跳到主要内容

判断单元格公式是否存在错误

如果 Excel 公式返回的是一个错误文本,例如 #NULL!#DIV/0!#VALUE!#REF!#NAME?#NUM!#N/A 等,这时如果试图用  Value 属性来获得公式的返回结果,将得到类型不匹配的错误。以下是判断单元格公式是否存在错误的方法:

示例一:使用 IsError 函数

以下示例代码使用 IsError 函数判断 Range 对象的 Value 属性的返回结果是否为错误值,可得知公式是否存在错误,如果是则显示该错误类型,否则显示公式的结果:

Sub IsErrorDemo()
    If IsError(Range("A1").Value) = True Then
        MsgBox "A1单元格错误类型为:" & Range("A1").Text
    Else
        MsgBox "A1单元格公式结果为:" & Range("A1").Value
    End If
End Sub

示例二:使用 Range.Errors 属性

使用 Range 对象的 Errors 属性可返回 Errors 对象,返回 Errors 对象后,可以使用 Error 对象的 Value 属性来检查特定的错误。

以下示例代码通过检查 Errors 对象的 xlEvaluateToError 常量值来判断单元格公式值是否为错误值,如果是则显示该错误类型,否则显示公式的结果:

Sub ErrorsDemo()
    If Range("A1").Errors.Item(xlEvaluateToError).Value = True Then
        MsgBox "A1单元格错误类型为:" & Range("A1").Text
    Else
        MsgBox "A1单元格公式结果为:" & Range("A1").Value
    End If
End Sub

XlErrorChecks 常量列表如下:

XlErrorChecks 常量
常量 描述
xlEmptyCellReferences 7 单元格包含一个引用空单元格的公式。
xlEvaluateToError 1 单元格计算为错误值。
xlInconsistentFormula 4 单元格包含与区域不一致的公式。
xlInconsistentListFormula 9 单元格包含与列表不一致的公式。
xlListDataValidation 8 列表中的数据包含一个有效性错误。
xlNumberAsText 3 按文本输入的数字。
xlOmittedCells 5 忽略的单元格。
xlTextDate 2 按文本输入的日期。
xlUnlockedFormulaCells 6 解除锁定公式单元格。

以下示例在单元格 A1 输入文本型数字,然后判断单元格 A1 的值是否为文本型数字:

Sub ErrorValue()
    ' 在A1单元格中输入文本型数字
    Range("A1").Formula = "'1"
    
    ' 检查单元格A1的值是否为文本型数字
    If Range("A1").Errors.Item(xlNumberAsText).Value = True Then
        MsgBox "A1的值为文本型数字"
    Else
        MsgBox "A1的值为数字"
    End If
End Sub

评论

您的电子邮件地址不会显示出来。*号为必填项。