【发布时间】:2021-08-27 18:54:56
【问题描述】:
我有一个名为 Sheet1 的工作表和一个名为 SearchForm 的用户窗体。在表单上,我有 2 个名为 TextBox1、TextBox2 的文本框,还有一个 ListBox1。
在工作表上,我有姓名、colthing 的类型、入藏号、外观描述以及与问题无关的其他几列。
当我在 TextBox1 中键入名称并点击搜索按钮时,我希望代码使用与键入的名称匹配的值填充列表框。从中提取数据的列不相邻。我需要 A、B、C、G 的数据。
列表框由 4 个 comluns 组成。
我尝试了这段代码(观看了video 并从那里复制):
Private Sub Keres_click()
Dim RowNum As Long
Dim SearchRow As Long
RowNum = 2
SearchRow = 2
Do Until Cells(RowNum, 1).Value = ""
If InStr(1, Cells(RowNum, 2).Value, Me.TextBox1.Value, vbTextCompare) > 0 Then
Worksheets("Találatok (kereséshez)").Cells(SearchRow, 1).Value = Cells(RowNum, 1).Value
Worksheets("Találatok (kereséshez)").Cells(SearchRow, 2).Value = Cells(RowNum, 2).Value
Worksheets("Találatok (kereséshez)").Cells(SearchRow, 3).Value = Cells(RowNum, 3).Value
Worksheets("Találatok (kereséshez)").Cells(SearchRow, 10).Value = Cells(RowNum, 10).Value
SearchRow = SearchRow + 1
End If
RowNum = RowNum + 1
Loop
Me.ListBox1.RowSource = "SearchResults"
End Sub
我所做的一切都与视频中的那个人完全一样(除了添加部分),但我在 .RowSource 部分遇到了错误。错误是:
无法设置 RowSource 属性。属性值无效。
我只是希望它像视频中一样工作。
在这个论坛和其他论坛上查找了一些其他代码,但他们要么没有给出任何结果,要么将整个工作表拉到列表框中。
对于 Textbox2 部分,我想进一步缩小结果范围,但我已经在为 TextBox1 苦苦挣扎,所以我没有该部分的代码。
【问题讨论】: