我正在使用以下代码自动打开下拉列表
在我的测试范围内,我故意留下一些没有任何数据验证的单元格,
我认为在我使用此行后,事件将不会启动(在没有数据验证的细胞上(If Target.Validation.InCellDropdown = True Then
但我得到了错误
运行时错误"1004":应用程序定义或对象定义错误
如果条件没有用感谢您的任何学习帮助
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H:H")) Is Nothing And _
Target.Cells.CountLarge = 1 And Target.Row > 1 Then
If Target.Validation.InCellDropdown = True Then
Application.SendKeys ("%{DOWN}")
End If
End If
End Sub
这并不是完全无用的,它只是VBA所做的一件事:如果目标没有验证,它会带来错误,因为有验证的单元格被视为SpecialCells
,而不是常规单元格(如果有意义的话(。无论如何,要使您的代码工作,您可以尝试:
On Error Resume Next
If Target.Validation.InCellDropdown = True Then
Application.SendKeys ("%{DOWN}")
End If
On Error GoTo 0