我这里有一个电子表格,它有 3 列,每列下面有很多文本。
如何创建一个过滤器,以便我可以在任何这些列中找到给定文本的所有出现,并且只显示包含该文本的行,而不管找到该文本的列。
答案1
好的,我刚才做的是创建一个过滤器和一个宏,将过滤器设置为某个单元格的值。
按照我从互联网上复制的代码并做了一些改动。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iFilterColumn As Integer
Dim rFilter As Range
Dim sCriteria As String
On Error Resume Next
With Target
Set rFilter = .Parent.AutoFilter.Range
iFilterColumn = .Column + 1 - rFilter.Columns(1).Column
If Intersect(Target, Range("rCriteria")) Is Nothing Then GoTo Terminator
Select Case Left(.Value, 1)
Case ">", "<"
sCriteria = .Value
Case Else
sCriteria = "=*" & .Value & "*"
End Select
If sCriteria = "=" Then
.Parent.Range(rFilter.Address).AutoFilter Field:=iFilterColumn
Else
.Parent.Range(rFilter.Address).AutoFilter Field:=iFilterColumn, Criteria1:=sCriteria
End If
End With
Terminator:
Set rFilter = Nothing
On Error GoTo 0
End Sub