我创建了一个类似于Google搜索的用户表单。我希望下拉显示/隐藏取决于有多少字母值。
喜欢这个..
If Len(ComboBox1.Value) > 4 Then
ComboBox1.DropDown
Else
'ComboBox.DroppedDown = False (non-existent method)
End If
这个问题有很多版本,大多数都会导致改变焦点,但这应该在输入框时发生。我发现很难相信它是不可能的..
编辑:问题涉及隐藏下面的列表,而不是侧面的箭头 - 因为它被设置为始终隐藏 - 列表应根据值的长度隐藏/取消隐藏。
答案 0 :(得分:0)
我能得到的最接近的是这个,但出于某种原因,如果你删除了字符,它就不会更新。另外,只有超过5个字符才开始工作!编辑 - 根据Mistella的评论进行修改。
Private Sub ComboBox1_Change()
If Len(Me.ComboBox1.Value) > 3 Then
Me.ComboBox1.ShowDropButtonWhen = fmShowDropButtonWhenAlways
Else
Me.ComboBox1.ShowDropButtonWhen = fmShowDropButtonWhenNever
End If
End Sub
Private Sub UserForm_Initialize()
With Me.ComboBox1
.AddItem "A"
.AddItem "B"
.AddItem "C"
.AddItem "D"
.ShowDropButtonWhen = fmShowDropButtonWhenNever
End With
End Sub