我正在尝试使用此语句确定单元格是否有数据验证:
If Target.Validation.Type = 3 Then
但是,我在VBA中收到错误:
应用程序定义或对象定义的错误
我尝试使用On error Resume Next
和On error Goto 0
,但没有帮助。
如何检查单元格是否包含数据验证?
答案 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