- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-3-24
|
9#
發表於 2021-7-22 11:52
| 只看該作者
回復 6# jsc0518
篩選1~5個項目均適用
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
Dim Qx$, Af&, Sh$, S1$, S2$, S3$, S4$, S5$, i&
Af = 32
Sh = ""
S1 = ""
S2 = ""
S3 = ""
S4 = ""
S5 = ""
If .Column = Af And .Row >= 2 And .Count = 1 Then
If ActiveSheet.FilterMode = True Then
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If Rows(i).EntireRow.Hidden = True Then
If Sh = "" Then
Sh = Cells(i, "AF")
ElseIf InStr(Sh, Cells(i, "AF")) = 0 Then
Sh = Sh & "," & Cells(i, "AF")
End If
ElseIf InStr(Sh, Cells(i, "AF")) <> 0 Then
GoTo 999
ElseIf S1 = "" Then
S1 = Cells(i, "AF")
ElseIf S2 = "" And InStr(S1, Cells(i, "AF")) = 0 Then
S2 = Cells(i, "AF")
ElseIf S3 = "" And InStr(S1 & S2, Cells(i, "AF")) = 0 Then
S3 = Cells(i, "AF")
ElseIf S4 = "" And InStr(S1 & S2 & S3, Cells(i, "AF")) = 0 Then
S4 = Cells(i, "AF")
ElseIf S5 = "" And InStr(S1 & S2 & S3 & S4, Cells(i, "AF")) = 0 Then
S5 = Cells(i, "AF")
Exit For
End If
999
Next
If InStr(Sh, .Value) <> 0 Then
.Rows(.Count).EntireRow.Hidden = True
Else
Selection.AutoFilter Field:=Af, Criteria1:=Array( _
S1, S2, S3, S4, S5), Operator:=xlFilterValues
ActiveSheet.AutoFilter.ApplyFilter
End If
End If
End If
End With
End Sub
參考! |
|