Excel VBA:根据文本框中设置的值在列表框中搜索值

时间:2014-10-03 07:22:46

标签: excel vba excel-vba listbox

我正在尝试为搜索按钮编写代码,该按钮根据文本框中的特定输入集搜索列表框。 搜索的值始终为数字,列表框包含单个列的值。 我写的代码可以在下面找到,但我不明白为什么它不起作用。

图例:

  • SearchButton:点击后应该启动搜索的按钮
  • SearchBox:包含搜索值的文本框
  • AvailableNumberList:包含数据的列表框

感谢您的帮助:)

Private Sub SearchButton_Click()
Dim SearchCriteria, i, n As Double
SearchCriteria = Me.SearchBox.Value
n = AvailableNumberList.ListCount
For i = 0 To n - 1
If SearchCriteria = i Then
AvailableNumberList.ListIndex = i
End If
Next i
End Sub

2 个答案:

答案 0 :(得分:2)

这是你在尝试的吗?

'If SearchCriteria = i Then
If AvailableNumberList.List(i) = SearchCriteria Then

找到匹配后也使用Exit For:)

答案 1 :(得分:0)

除了@Siddharth Rout 解决方案之外,即使 TextBox 没有完整的单词/数字,此代码也允许在 ListBox 中进行搜索:

Private Sub SearchButton_Click()

Dim SearchCriteria, i, n As Double
SearchCriteria = Me.SearchBox.Value
n = AvailableNumberList.ListCount

For i = 0 To n - 1
If Left(AvailableNumberList.List(i),Len(SearchCriteria))=SearchCriteria Then
AvailableNumberList.ListIndex = i
Exit For
End If
Next i

End Sub

感谢大家的代码! =D