[英]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.