オートフィルターで抽出した結果からIF関数を使い他の列にさらにオートフィルターをかけたい。
『もし18列目に”W"がある場合は、7列目のフィルターは"2","3","4","5"でかけて
そうでない場合は"2","3","5"でかける。
もし7列目に"4"がある場合は、8列目のフィルターは"ABC"を含まないものにかけて
そうでない場合はなにもしない。』
という内容を追加したら動かなくなりました。
Sub AutoFilter() Dim Ws As Worksheet For Each Ws In Worksheets Ws.Activate With ActiveSheet 'オートフィルター設定済を考慮して '一旦オートフィルターを解除 .AutoFilterMode = False Rows("2:2").Select Selection.AutoFilter ActiveSheet.Range("$A$2:$CP$718").AutoFilter Field:=18, Criteria1:=Array( _ "A", "M", "W"), Operator:=xlFilterValues ActiveWindow.SmallScroll Down:=-12 ActiveSheet.Range("$A$2:$CP$718").AutoFilter Field:=15, Criteria1:="3" ActiveWindow.SmallScroll Down:=-12 If Columns(18)="W" Then ActiveSheet.Range("$A$2:$CP$718").AutoFilter Field:=7, Criteria1:=Array("2" _ , "3", "4", "5"), Operator:=xlFilterValues Else ActiveSheet.Range("$A$2:$CP$718").AutoFilter Field:=7, Criteria1:=Array("2" _ , "3", "5"), Operator:=xlFilterValues End If If Columns(7)="4" Then ActiveSheet.Range("$A$2:$CP$718").AutoFilter Field:=8, Criteria1:="<>*ABC*", _ Operator:=xlFilterValues End If End With Next Ws End Sub```
回答2件
あなたの回答
tips
プレビュー