“撤消”ComboBox DropButtonClick

时间:2016-12-13 15:18:11

标签: excel vba excel-vba

我根据之前的ComboBoxes选项填充了一系列ComboBox。例如,根据ComboBox3中选择的值填充ComboBox2。填充ComboBox3的“触发器”是DropButtonClick操作。当ComboBox2中没有值时,我弹出一个消息框。这是成功的 - 下面的代码。

If Me.ComboBox2.ListIndex = -1 Then
    MsgBox "Please select all preceding comboboxes"
    ComboBox3.Value = ""
    Exit Sub
Else
    sh.Range("B2") = Me.ComboBox2.Value
End If

我的问题是Message Box出现后ComboBox2中没有值ComboBox3 ComboBox3 DropButtonClick Event仍会显示下拉值。有没有办法在ComboBox2中没有值时撤消ComboBox3,以便<div class=\"col - md - 4 queryResponseBodyKey\">.*</div> 永远不会下降?

2 个答案:

答案 0 :(得分:1)

您可以通过模拟“ESC”键立即关闭组合框的下拉窗口:

  MsgBox "Please select all preceding comboboxes"
  ComboBox3.Value = ""

  ' close immediately the combo's dropdown window
  SendKeys "{ESC}{ESC}" 

答案 1 :(得分:0)

这适合你吗?

If Me.ComboBox2.Value = "" Then
    ComboBox2.SetFocus
Else
    sh.Range("B2") = Me.ComboBox2.Value
End If

当你想点击combobox3的下拉按钮时,它会自动返回到combobox2。