我想只显示过滤后的数据,但下面的代码是从电子表格中检索所有数据。
列表视图应仅反映列A
的值与textbox1.text
匹配的数据。请协助。
Dim item As ListItem
Dim linhafinal As Integer
ListView8.ListItems.Clear
linhafinal = k + 1
For i = 2 To linhafinal
Set item = ListView8.ListItems.Add(, , ws1.Cells(i, 1))
item.ListSubItems.Add Text:=ws1.Cells(i, 2)
item.ListSubItems.Add Text:=ws1.Cells(i, 3)
item.ListSubItems.Add Text:=ws1.Cells(i, 4)
item.ListSubItems.Add Text:=ws1.Cells(i, 5)
item.ListSubItems.Add Text:=ws1.Cells(i, 6)
item.ListSubItems.Add Text:=ws1.Cells(i, 7)
item.ListSubItems.Add Text:=ws1.Cells(i, 8)
item.ListSubItems.Add Text:=ws1.Cells(i, 9)
item.ListSubItems.Add Text:=ws1.Cells(i, 10)
Next
答案 0 :(得分:1)
您正在遍历整个范围并将其添加到listview,因此您将获得所有数据。检查值是否与TextBox1.Text
匹配,然后添加它们。
这是你正在尝试的(未经测试)?
Dim item As ListItem
Dim linhafinal As Integer
ListView8.ListItems.Clear
linhafinal = k + 1
For i = 2 To linhafinal
If ws1.Cells(i, 1).Value = TextBox1.Text Then
Set item = ListView8.ListItems.Add(, , ws1.Cells(i, 1))
item.ListSubItems.Add Text:=ws1.Cells(i, 2)
item.ListSubItems.Add Text:=ws1.Cells(i, 3)
item.ListSubItems.Add Text:=ws1.Cells(i, 4)
item.ListSubItems.Add Text:=ws1.Cells(i, 5)
item.ListSubItems.Add Text:=ws1.Cells(i, 6)
item.ListSubItems.Add Text:=ws1.Cells(i, 7)
item.ListSubItems.Add Text:=ws1.Cells(i, 8)
item.ListSubItems.Add Text:=ws1.Cells(i, 9)
item.ListSubItems.Add Text:=ws1.Cells(i, 10)
End If
Next
或者,在过滤范围后,循环显示可见范围,然后将它们添加到列表视图中。目前你的代码正在添加所有这些...