ComboBox.Dropdown Method 仅显示一个列表项



我正在使用 excel (vba( 中的 ComboBox,它根据键入的内容(接近匹配(将项目添加到列表中,以便如果他们键入的内容已经存在于数据范围内,他们可以看到它并单击。

除了方法ComboBox1.DropDown之外,这一切都可以正常工作,它应该显示列表。不幸的是,它只显示一个带有滚动按钮的项目。单击下拉按钮或按 f4 将显示由框的属性确定的正确行数。

我已经搜索了又搜索,有什么线索如何自动显示列表中的所有项目吗?

这是我关于SO的第一个问题,如果标记不连贯,请告知。

编辑:ActiveX控件,.listRows和.listFillRange似乎没有帮助

我一直在打电话.在创建列表的自定义 Sub 中下拉,我需要更改它,因此它现在是 ComboBox1_Change(( 中的最后一行。

不知道为什么它在 _change(( 中的行为与在我的 Sub 中不同(由 _change(((调用(!

我认为这实际上与使用 .clear 方法然后调用 .下拉列表,它不会重新计算要显示的行数。我可能需要将它们放在单独的 Sub 感谢您的回复@PatricK

编辑:未解决,它现在可以正常工作,第一个"更改"键入更多的字母会导致列表的其余部分在第一行更新并具有滚动按钮时保持未清除状态。我希望我确切地知道这些方法是如何编写的以及它们何时被执行。

ComboBox1.Visible = False
ComboBox1.Visible = True
ComboBox1.Activate
If ComboBox1.ListCount > 0 Then
ComboBox1.DropDown
End If

这段代码似乎可以解决问题,至少播放了不止一行,并且如果删除项目,列表会变得更短,这与以前不同。

最新更新