我有一个组合框,列出数据从2列,姓氏和教名,这工作得很好,但它是一个相当长的列表滚动。我想要实现的是能够输入或选择姓氏的首字母,并在Combo框下拉列表中只显示以该字母开头的姓氏的两列(就像现在一样),或者打开选中该字母的第一个姓氏的完整列表。我发现了很多看似是答案的东西,但要么是我不理解答案,要么是我无法让它们工作。谢谢你。
我已经有一个私人子组合框给我一个行号(感谢norie),并通过设置ColumnCount为2获得2列。
Private Sub ComboBox1_Change()
Me.Range("G1").Value = ComboBox1.ListIndex + 3
End Sub
Combobox允许您在键入时使用以下代码筛选项目:
Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim arrIn As Variant, arrOut As Variant
Dim i As Long, j As Long
arrIn = Sheet1.Range("A2:A2000")
ReDim arrOut(1 To UBound(arrIn), 1 To 1)
For i = 1 To UBound(arrIn)
If arrIn(i, 1) Like ComboBox1.Text & "*" Then
j = j + 1
arrOut(j, 1) = arrIn(i, 1)
End If
Next
ComboBox1.List = arrOut
End Sub