为什么使用If(InCellDropdown=True)却出现"运行时:应用程序定义或对象定义错误"



我正在使用以下代码自动打开下拉列表
在我的测试范围内,我故意留下一些没有任何数据验证的单元格,
我认为在我使用此行后,事件将不会启动(在没有数据验证的细胞上(
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

相关内容

  • 没有找到相关文章

最新更新