【发布时间】:2017-12-12 04:13:21
【问题描述】:
我有这段代码,它用 Sheet2 上 Table1 的 Name 列填充 Sheet1 上的组合框。
Public Sub Worksheet_Activate()
Me.ComboBox1.List = Worksheets("Sheet2").ListObjects("Table1")_
.ListColumns("Name").DataBodyRange.Value
End Sub
工作正常,但是当我在工作表上单击组合框时会产生奇怪的效果。框中选定的条目快速闪烁到上一个条目。例如,当前选中的项目是“b”,然后我选择“c”。如果我单击工作表,则框中的条目会快速闪烁到“b”,然后再返回“c”。
我已将这段代码单独放在一个新文件中,但效果仍然相同。有没有其他人看过这个?
编辑公开订阅的原因:
忘记包含 Workbook_Open 代码,以便在您打开工作簿时将 Sheet1 视为已激活。但不管我是否保留那个代码,我仍然可以看到效果。
Private Sub Workbook_Open()
Call ActiveSheet.Worksheet_Activate
End Sub
【问题讨论】:
-
即使没有 VBA 代码也会发生在我身上,所以我猜你会坚持下去
-
这很烦人。我搜索并没有看到其他人之前提到它。这就是让我烦恼的事情。
-
不知道为什么它是公共子,但我在 Excel 2010 上没有看到这种现象。您的代码在 Sheet1 对象中?
-
是的,它在 Sheet1 中。这是 Excel 365。我忘记包含调用 Worksheet_Activate 的 Workbook_Open 代码。这就是为什么它是公共的。否则,当您第一次打开工作表时,它不会被视为已激活,因此您不会获得下拉列表。