【发布时间】:2019-02-28 09:03:45
【问题描述】:
SendKeys 有什么替代方法可以自动展开下拉验证列表吗?单击单元格后,我想展开下拉验证列表。我的问题的重点完全是如何避免SendKeys方法。
这是使用SendKeys 的正常工作解决方案:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If HasValidation(Target) Then
SendKeys "%{DOWN}"
SendKeys "{NUMLOCK}", True 'Workaround for Numlock turn off bug
End If
End Sub
Function HasValidation(MyCell As Range) As Boolean
Dim t: t = Null
On Error Resume Next
t = MyCell.Validation.Type
On Error GoTo 0
HasValidation = Not IsNull(t)
End Function
相关链接:HasValidation函数:https://stackoverflow.com/a/31346246/1903793NumLockbug:https://stackoverflow.com/a/29551913/1903793
上面的代码运行顺利,没有任何障碍。对于广泛报道的问题,我只是对SendKeys 有偏见。我怀疑将此解决方案合并到更大的代码中可能会在未来导致难以捕捉的意外行为。
【问题讨论】:
-
您现在遇到这个问题了吗?因为我实际上认为这很好:)
-
@AlexdeJong 不,根本没有。它工作顺利。这只是一个谨慎的问题。我偏向于使用 SendKeys。我怀疑这可能会导致未来难以捕捉的问题。
标签: excel vba validation dropdown