excel 如何按单元格值筛选特定表列

relj7zay  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(159)

我有一个存储了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
cnh2zyt3

cnh2zyt31#

我设法修复了它,我指的是错误的列(现在它也再次添加过滤器回来)

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$E$2" Then
   Range("E7").AutoFilter
    If Range("E2") = "" Then
     Range("E7").AutoFilter
     Else
     Range("E7").AutoFilter Field:=5, Criteria1:=Range("E2")
   End If
  End If
End Sub

Image
但是它只过滤精确值而不是部分值。我尝试用下面的代码指定Criteria1,但是它只返回1个值,例如:我有6条记录以值123结尾,但它只会过滤掉1条,而不是全部6条。如果我设法修复它,我会发布另一个答案。
Range("E7").AutoFilter Field:=5, Criteria1:="*" & Range("E2").Value & "*"

相关问题