OnKey"删除"清除组合框

时间:2015-04-15 11:20:49

标签: excel-vba combobox clear vba excel

我有一个包含多个组合框的用户表单。用户可以输入新项目或从列表中选择一项。

他可以开始输入想要项目的第一个字母,但是当他犯了错误并从例如“b”而不是“n”他必须手动清除组合框或使用鼠标或箭头在列表中找到项目。

我想使用删除键快速清除该框,以便用户可以再次开始输入。但我不知道在哪里放置这行代码如果正确(输入事件,更改事件,其他一些可能吗?)。

Application.OnKey "{Delete}", "WyczyscPole"

首先,Excel需要知道用户所在的框,然后将其清除。

我尝试使用变量创建单独的模块,该变量找出当前的组合框名称并在下一步中清除它。但我不知道下面的被叫是否是正确的。

Sub WyczyscPole()

Dim NazwaPola As ComboBox

NazwaPola = frmZakupy.ActiveControl.Name
NazwaPola.Clear

End Sub

2 个答案:

答案 0 :(得分:0)

请尝试:frmZakupy.value=''

不要在任何名称中使用“ś”,“ć”等特殊字符,这是一种很好的做法。

答案 1 :(得分:0)

当用户在组合框中时,您可以使用KeyDown事件捕获Delete键(KeyCode = 46)。

Private Sub NazwaPola_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = 46 Then
        Me.NazwaPola.Value = vbNullString
    End If

End Sub