【问题标题】:Populate Listbox on a UserForm from a sheet after search based on a TextBox value在基于 TextBox 值进行搜索后,从工作表中填充用户窗体上的列表框
【发布时间】: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 苦苦挣扎,所以我没有该部分的代码。

【问题讨论】:

    标签: excel vba userform


    【解决方案1】:

    您可以使用以下两种方法之一:

    • 1/ 过滤您的数据并将结果复制到工作表中的某个位置(就像您所做的那样)。然后使用ListFillRange 属性(有关详细信息和代码,请参阅this post)来填充您的列表框。
    • 2/ 过滤您的数据并将结果直接导入您的列表框中,每次您有一个符合要求的单元格时(我认为最好的解决方案)。为此使用ListBox.AddItem "data"。在“多列”部分查看 this page 中的一些代码示例。

    【讨论】:

    • 感谢您的回答,第二部分有效。我对代码做了一个小的调整:For icount = 1 to lastrow 但现在我还有 3 个问题:1)只有 1 行被拉入 2)循环似乎不起作用。如果我尝试通过 Textbox1.Value 自动过滤原始工作表并使用 SpecialCells 方法从可见单元格中提取数据会更好吗? 3) 列表框现在忽略第一行。数据被拉到第二行。
    • 您能否编辑您的帖子以包含新代码以及您的 Excel 表格和列表框的图片(当然,如果数据不敏感)?这将使您更容易正确理解您面临的问题。
    • 我已经弄清楚了代码。有时间就来分享一下。但我感谢您的帮助。 :)
    • @Gandalf96 很高兴听到这个消息,不客气 :)
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 2014-02-15
    • 2014-03-23
    • 1970-01-01
    相关资源
    最近更新 更多