我正在使用下面的代码将数据从另一张表插入到下拉列表中。当用户从另一个下拉列表中选择某个选项时,即可实现这一点。
lstRow = Sheets("Data Sheet").Range("D" & Rows.Count).End(xlUp).Row
Sheets("Data Insert").Range("C3").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="='Associated British Ports'!$G$7:$G" & lstRow
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Invalid Selection"
.InputMessage = ""
.ErrorMessage = _
"Please select a user from the list or select New User as the configuration type."
.ShowInput = True
.ShowError = True
End With
我想添加一个功能,当用户输入几个字母时,它会在列表中搜索并消除任何不包含该字母的内容。
IE。假设我的下拉列表中有以下内容:
托马斯
史密斯
格雷厄姆
埃文斯
戴维斯
B马修斯
用户输入“th”
剩余的值应该是
托马斯
史密斯
B马修斯
即使在简化版本中,用户必须以 A Th.... 的形式输入名称,如果上述方法不可行,也可以返回 A Thomas。
我见过这个http://www.ozgrid.com/Excel/autocomplete-validation.htm http://www.ozgrid.com/Excel/autocomplete-validation.htm和这个带建议/自动完成功能的 Excel 数据验证 https://stackoverflow.com/questions/19818075/excel-data-validation-with-suggestions-autocomplete
但我不认为我不确定如何将其与上面的代码集成,或者甚至是可能的!
有人可以帮我吗?
TIA :)
这是我的 SAYT(键入时搜索)功能。我的表单有一个包含用户列表的列表框控件和一个可用于搜索列表的文本框控件。
Private Sub txtSearch_Change()
Dim x As Integer
lstUsers.ListIndex = -1
For x = 0 To lstUsers.ListCount - 1
lstUsers.ListIndex = x
If InStr(1, LCase(lstUsers.Text), LCase(txtSearch.Text), vbTextCompare) > 0 _
Or InStr(1, LCase(lstUsers.List(x, 1)), LCase(txtSearch.Text), vbTextCompare) > 0 _
Then
Exit Sub
End If
Next x
End Sub
Private Sub txtSearch_KeyPress(ByVal KeyAscii As msforms.ReturnInteger)
If KeyAscii = 13 Then
txtSearch.Text = lstUsers.Text
End If
End Sub
当您键入时,每次击键都会触发 txtSearch_Change 事件,并且它循环遍历列表框值,直到找到第一个匹配项并选择它。我们还检查 KeyPress 事件以查看用户是否按下 Enter (ASCII 13) 以自动完成搜索。我的不区分大小写(我将所有内容都区分大小写),但您可以轻松地将其修改为区分大小写(甚至添加一个复选框,以便用户可以选择区分大小写!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)