Excel VBA文本框以填充组合框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel VBA文本框以填充组合框相关的知识,希望对你有一定的参考价值。
我得到了一些帮助,让我难以忍受了一段时间。请原谅长篇解释。
我有一个组合框,在userform初始化时从一个范围填充。当我输入组合框时,抢先文本按照预期显示。然后,我为一个文本框创建了一个Change事件,该事件根据输入到组合框中的内容进行填充。那部分一切正常(我从其他网站获得了该代码)。
我有两种方法将数据输入到组合框中,一种是通过键入,另一种是当另一个文本框中的文本发生变化时,它还会填充组合框。我通过“combobox1 = textbox1.value”来做到这一点。现在这是我难倒的部分。使用combobox1 = textbox1方法时,它无法正常工作(或者更多,我希望它如何工作)。它输入textbox1中包含的文本,但它没有显示完整的抢先文本行,例如在组合框中键入时的行为,也没有填充组合框更改时更改的文本框。如果我然后单击组合框并点击空格键,则会触发更改事件,并显示范围中的其他抢先文本。我尝试在结尾处放置一个空格“”命令combobox1 = textbox1&“”,希望它会认为有更多的文字要来,但是没有用。有没有办法让VBA做到这一点,还是我要求太多了?
希望这是有道理的。
保罗保罗
似乎ComboBox
AutoCompletion功能仅由UI输入触发
你可以解决它如下:
Private Sub TextBox1_Change()
Dim iList As Long
With Me.ComboBox1
For iList = 0 To .ListCount - 1
If Left(.List(iList), Len(Me.TextBox1.Value)) = Me.TextBox1.Value Then
.ListIndex = iList ' if any combobox1 value matches textbox1 value then select it
Exit Sub
End If
Next
.ListIndex = -1 ' if no combobox1 value matches textbox1 value then "deselect" combobox1
End With
End Sub
以上是关于Excel VBA文本框以填充组合框的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 VBA 根据值和组合框选择填充 excel 中的行?
访问 VBA - 使用 VBA 的 SQL 语句使用文本框组合框值在表单上填充列表框 OR