我有一个存储了10k+行数据的表,希望通过VBA
加快过滤速度。我想根据另一个单元格E2中的值过滤表“Data”的第5列。
我尝试了下面的代码,但如果我在E2中键入任何内容,它只会隐藏表中的所有行。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$2" Then
If Range("E2") = "" Then
Range("E7").AutoFilter
Else
Range("E7").AutoFilter Field:=2, Criteria1:=Range("E2")
End If
End If
End Sub
1条答案
按热度按时间cnh2zyt31#
我设法修复了它,我指的是错误的列(现在它也再次添加过滤器回来)
Image
但是它只过滤精确值而不是部分值。我尝试用下面的代码指定Criteria1,但是它只返回1个值,例如:我有6条记录以值123结尾,但它只会过滤掉1条,而不是全部6条。如果我设法修复它,我会发布另一个答案。
Range("E7").AutoFilter Field:=5, Criteria1:="*" & Range("E2").Value & "*"