我有一个多选列表框,希望将其变为可搜索的。如果在列表框中找到了搜索值,那么我想滚动到该位置,但不要选择它。这可能吗?到目前为止,我要搜索的代码是:-
With lstComm
For i = 0 To .ListCount - 1
If .Column(6, i) = txtSearch.Value Then
End If
Next i
End With
...但是我不确定如何完成滚动。
答案 0 :(得分:1)
这应该可以正常工作:
Dim index As Long
With lstComm
Dim match As Boolean
For index = 0 To .ListCount - 1
If .Column(1, index) = txtSearch.Value Then
match = True
Exit For
End If
Next
If Not match Then Exit Sub
Dim isSelected As Boolean
isSelected = .Selected(index)
.Selected(index) = True
.Selected(index) = isSelected
End With
它检索列表框的搜索项。
如果未找到任何项目,则存在。
否则,它将存储该项目的当前选择状态,将其选中以放置列表框,然后恢复该项目的存储状态。