繁体   English   中英

具有动态过滤器文本框和多个列结果的列表框,用于通过过滤器找到的匹配

[英]ListBox with dynamic filter textbox and multiple columns results for that hits found with filter

下面的代码是列表框的过滤器。 每次当我以用户格式在文本框中输入内容时,都会搜索所有包含文本框中的字母和经过编译的结果的字母的位置,并将这些结果写入我的列表框中

可悲的是,它仅适用于1列。 它只给我我用于搜索的列。 我想成为更多专栏。 该列表有9列。 我如何编写它,以使每个位置的其余8列与我在文本框中的搜索一起编译?

该代码适用于1列,没有问题,但是如果我将列数更改为2并添加第2列,则它适用于第一个字母,使用第二个字母,我始终会出现运行时错误381 ,并且列表将再次过滤,但是第2列中没有结果...仅存在过滤器结果

几乎没有帮助,该用户表单带有代码+一些要测试的列表:

https://drive.google.com/open?id=1OIVg_HgMH9FpH_8H2OXuGsJzoIO4bsAp

Private Sub ListName_Change()

Dim i As Long
Dim arrList As Variant

'ListAvaillabe = Listbox; E1G = sheet name; ListName = textbox as filter

Me.ListAvaillabe.Clear
'I tried first only to make it with 2 columns, it doesn't work
ListAvaillabe.ColumnCount = 2
If E1G.Range("C" & E1G.Rows.Count).End(xlUp).row > 1 And Trim(Me.ListName.Value) <> vbNullString Then
arrList = E1G.Range("C2:C" & E1G.Range("C" & E1G.Rows.Count).End(xlUp).row).Value2
For i = LBound(arrList) To UBound(arrList)
    If InStr(1, arrList(i, 1), Trim(Me.ListName.Value), vbTextCompare) Then
        Me.ListAvaillabe.AddItem arrList(i, 1)
         'below should be me rest of code for other columns
        'If E1G.Cells(i, 2).Value <> vbNullString Then ListAvaillabe.List(i - 1, 2) = E1G.Cells(i, 3).Value
    End If
Next i
End If
If Me.ListAvaillabe.ListCount = 1 Then Me.ListAvaillabe.Selected(0) = True

End Sub

这是和我其他问题一样的问题。 现在已修复错误381从工作表中填充列表框的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM