[英]Filter cells of multiple columns by one value Excel
这段代码仅适用于斯科特:P
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("F1")) Is Nothing Then
Application.ScreenUpdating = False
Dim lastRow As Long, varArr As Variant, val As String, rowArr(1) As Range, i As Long
val = LCase(Me.Range("F1").Value2)
Me.UsedRange.EntireRow.Hidden = False
If Len(val) Then
lastRow = Application.Max(Me.Cells(Me.Rows.Count, 1).End(xlUp).Row, _
Me.Cells(Me.Rows.Count, 2).End(xlUp).Row, _
Me.Cells(Me.Rows.Count, 3).End(xlUp).Row, _
Me.Cells(Me.Rows.Count, 4).End(xlUp).Row)
varArr = Me.Range("A1:D" & lastRow).Value2
For i = 3 To lastRow
If val = LCase(varArr(i, 1)) Or val = LCase(varArr(i, 2)) Or val = LCase(varArr(i, 3)) Or val = LCase(varArr(i, 4)) Then
If rowArr(0) Is Nothing Then
Set rowArr(0) = Me.Rows(i)
Else
Set rowArr(0) = Union(rowArr(0), Me.Rows(i))
End If
Else
If rowArr(1) Is Nothing Then
Set rowArr(1) = Me.Rows(i)
Else
Set rowArr(1) = Union(rowArr(1), Me.Rows(i))
End If
End If
Next
rowArr(0).EntireRow.Hidden = False
rowArr(1).EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
End If
End Sub
(搜索字段为F1,大小写无关紧要)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.