Excel ActiveX Combobox在失去焦点时显示先前的选择

时间:2017-12-12 04:13:21

标签: excel vba combobox

我有这个代码,它在Sheet1上填充一个组合框,并在Sheet2上填充Table1的Name列。

Public Sub Worksheet_Activate()
   Me.ComboBox1.List = Worksheets("Sheet2").ListObjects("Table1")_
   .ListColumns("Name").DataBodyRange.Value
End Sub

工作正常,但是当我将组合框单击到工作表上时,它会产生奇怪的效果。框中的所选条目快速闪烁到上一个条目。例如,当前选择的项目是" b"然后我选择" c"。如果我点击工作表,框中的条目会快速闪烁到" b"在回到" c"之前。

我已将此代码单独放入新文件中,我仍然可以获得相同的效果。有没有人见过这个?

编辑Public Sub的原因:

忘记包含Workbook_Open代码,以便在打开工作簿时将Sheet1视为已激活。但是如果我保留这些代码并不重要,我仍然会看到效果。

Private Sub Workbook_Open()
Call ActiveSheet.Worksheet_Activate
End Sub

1 个答案:

答案 0 :(得分:0)

使用在工作表上选择一个单元格的代码添加一个LostFocus事件,当更改ComboBox的值后选择一个单元格时,应该不会导致闪烁。

类似以下内容:

Private Sub ComboBox1_LostFocus()
    ActiveSheet.Range("A1").select
End Sub