Target.Validation.Type导致“应用程序定义或对象定义”错误

时间:2015-05-18 08:37:51

标签: excel excel-vba excel-2013 validation vba

我正在尝试使用此语句确定单元格是否有数据验证:

If Target.Validation.Type = 3 Then

但是,我在VBA中收到错误:

  

应用程序定义或对象定义的错误

我尝试使用On error Resume NextOn error Goto 0,但没有帮助。

如何检查单元格是否包含数据验证?

1 个答案:

答案 0 :(得分:1)

这是一种方法。这将检查工作表中的任何单元格是否已进行验证。如果没有,那么它退出子。如果有,那么它检查当前单元格是否是那些验证单元格的一部分

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim r As Range

    Application.EnableEvents = False

    On Error Resume Next
    Set r = Cells.SpecialCells(xlCellTypeAllValidation)
    On Error GoTo 0

    If Not r Is Nothing Then
        On Error GoTo Whoa

        If Not Intersect(Target, r) Is Nothing Then
            If Target.Validation.Type = 3 Then
                '
                '~~> Your code
                '
            End If
        End If
    End If

Letscontinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume Letscontinue
End Sub