Excel ActiveX Combobox shows previous selection wh

2019-08-31 04:02发布

I have this code which fills a combobox on Sheet1 with the Name column of Table1 on Sheet2.

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

Works fine but it has a weird effect when I click off the combobox onto the sheet. The selected entry in the box quickly flashes to the previous entry. For example, the currently selected item is "b" and then I select "c". If I click on the worksheet the entry in the box quickly flashes to "b" before going back to "c".

I've put this code alone in a new file and I still get the same effect. Has anyone else seen this?

Edit regarding reason for Public Sub:

Forgot to include the Workbook_Open code so that Sheet1 is considered Activated when you open the Workbook. But it doesn't matter if I keep that code or not, I still see the effect.

Private Sub Workbook_Open()
Call ActiveSheet.Worksheet_Activate
End Sub

1条回答
疯言疯语
2楼-- · 2019-08-31 04:17

Adding a LostFocus event with code that selects a cell on your worksheet should cause the flicker not to happen when you select a cell after changing the ComboBox's value.

Like the following:

Private Sub ComboBox1_LostFocus()
    ActiveSheet.Range("A1").select
End Sub
查看更多
登录 后发表回答