Excel 验证 - IsEmpty 或#CALC!?

Excel Validation - IsEmpty or #CALC!?

我正在尝试向使用列表配置的单元格 D16 添加一些验证。

通常此单元格会显示选项列表供用户 select。但是,如果他们没有向另一个 sheet 添加值,此列表将显示 #CALC!

目前我有:

Set Check = ThisWorkbook.Sheets("Home").Range("D16")
If IsEmpty(Check.Value) Then
    MsgBox "Warning...."
End If

这在没有选项被 select 编辑时有效,但如果用户没有将选项添加到另一个 sheet,则列表提供 #CALC! 并且如果用户 select检查无效。

选项的值总是超过 10 个字符,所以我试过:

   If (Len(Check.Value) < 10) Then
       MsgBox "Warning...."
   End If

但这不起作用。

有没有办法检查空白条目或#CALC!或检查单元格中内容的长度,是否包括#CALC! ?

谢谢

Is there any way to check for a blank entry or #CALC! or check the length of whats in the cell and would that include #CALC! ?

一个Rangereturns一个VariantValue()属性。这是一种数据类型,可以是数字、字符串、数组或其他几种数据类型。如果电子表格单元格中有错误(显示为#NUM!、#VALUE!、#CALC! 等),那么这是一个单独的错误类型,可以使用 IsError().

进行测试

每个错误都有一个与之关联的编号:#CALC!这是 2050。如果你想检查错误具体是#CALC!您可以将该值与 CvErr(2050) 进行比较,或使用 CStr():

转换为字符串表示形式

例如

Sub TestError()
    Dim v as Variant
    v = CVErr(2050)
    
    If IsError(v) Then
        Debug.Print CStr(v)
    End If
End Sub

打印(在立即 window):

Error 2050