Vba 如何捕捉#REF!在Excel中?
我想知道如何捕获Vba 如何捕捉#REF!在Excel中?,vba,excel,excel-formula,Vba,Excel,Excel Formula,我想知道如何捕获#REF错误 我能够通过以下代码捕获中的错误: If WorksheetFunction.IsError(ActiveCell) Then If ActiveCell.Value = CVErr(xlErrRef) Then ActiveCell.Value = "Error" End If End If 我想在Excel公式栏中编写相同的函数。有什么办法吗 谢谢。您可以在公式栏中使用iError并检
#REF错误
我能够通过以下代码捕获中的错误:
If WorksheetFunction.IsError(ActiveCell) Then
If ActiveCell.Value = CVErr(xlErrRef) Then
ActiveCell.Value = "Error"
End If
End If
我想在Excel公式栏中编写相同的函数。有什么办法吗
谢谢。您可以在公式栏中使用iError并检查是否正确
这只用于识别isref错误
=iError(如果(ERROR.TYPE(A1)=4,“Ref ERROR”,A1),“All GOOD”)您可以使用公式IF(iError(ActiveCell),“ERROR”)
但是,这也将捕获所有其他错误。请注意,单元格将只返回计算公式时遇到的第一个错误,因此如果单元格在\Ref!之前出现\Name?
错误代码>错误,无法捕获潜在的#Ref代码>错误
可能是这样的:
=和(ISREF(A1),ISER(A1))
首先测试单元格是否包含引用,然后检查是否也包含错误
我修改使用IsErr
而不是IsError
来忽略N/A
类型错误。=IF(IsError(A1),ERROR.type(#REF!)=ERROR.type(A1),FALSE)
在#ref上返回true,在所有其他错误上返回false或无错误。好的,ISERROR()将捕获所有错误。我想了解一下#REF!试着用这个=ERROR.TYPE(#REF!)来做点什么---=IF(ERROR.TYPE(A1)=4,“ERROR”,“All good”)。。如果错误类型为#ref,则“error”表示除error之外的“all good”。如果单元格中没有错误,type将返回N/A。OP的另一个缺点是公式可以包含多个错误条件,但单元格值将仅显示遇到的第一个错误,这可能无关紧要。例如,=SheetDoesNotExist!A1+badname
将给出一个#Ref代码>错误,而=badName+SheetDoesNotExist!A1
将给出一个#名称?
错误。是的,您是对的。然而,我只想抓住#REF!错误您可能需要将IsError
公式与IsRef
公式相结合。请看下面我的建议。请看,在同一公式中可以有ref和不同类型的错误。考虑<代码> = B5+BADNEX/CODE >你可以用4代替错误。类型(α-Ref!),但是我认为这使得你做的更清楚。