Я пытаюсь использовать ActiveX ComboBox в Excel. Все работает нормально до момента заполнения с помощью раскрывающейся кнопки click_event
. Но когда он устанавливает событие щелчка, я обнаруживаю, что он запускается даже при нажатии клавиш, таких как клавиши со стрелками. Это нормальное поведение, и если да, то как я могу обойти это?
Я работаю над Excel 2007 VBA.
Это метод, который я использовал, чтобы разрешить навигацию в поле со списком с помощью клавиш, я подожду, чтобы увидеть, есть ли лучшее решение..: lastkey - это общедоступная переменная
Private Sub ComboBox1_KeyDown(ByVal KeyCode As _
MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 38 Then
If ComboBox1.ListIndex <> 0 Then
lastkey = KeyCode
ComboBox1.ListIndex = ComboBox1.ListIndex - 1
KeyCode = 0
End If
ElseIf KeyCode = 40 Then
If ComboBox1.ListIndex <> ComboBox1.ListCount - 1 Then
lastkey = KeyCode
ComboBox1.ListIndex = ComboBox1.ListIndex + 1
KeyCode = 0
End If
End If
End Sub
Private Sub ComboBox1_Click()
If lastkey = 38 Or lastkey = 40 Then
Exit Sub
Else
MsgBox "click"
End If
End Sub