私は現在、メインフレームからのデータを扱っていますが、ここに示されているデータとは異なります。この場合、基準とターゲット データ セットには 100-AAA に似た文字列しかありません。私は同様の解決策を探しましたが、VBA on SO の範囲の質問による直接フィルターは見つかりませんでした。
さまざまな基準に基づいて大規模なデータセットをフィルタリングしようとしています。もともと、私は別々のクラス/サブルーチンでコレクションをいじり始めましたが、次のように、単一のサブルーチン内で範囲を使用するように圧縮しました。
Sub FilterTest1()
Dim RngOne As Range
Dim LastCell As Long
Sheets("Criteria").Activate
Sheets("Criteria").Select
Range("A1").Select
LastCell = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
Set RngOne = ActiveSheet.Range("A2:A" & LastCell)
Sheets("Sheet 1").Activate
Sheets("Sheet 1").Select
With ActiveSheet
If .FilterMode Then
.ShowAllData
End If
End With
Columns("A:A").Select
Selection.AutoFilter
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:=RngOne, Operator:=xlOr
End Sub
残念ながら、次のような基準を使用している場合でも、私のセル範囲はデータをフィルタリングしませんOperator:=xlOr
。基準に使用された最後のセル値を表示するだけです。VBA コードは失敗しません。範囲に基づいて適切にフィルタリングされないだけです。
簡単な解決策があると確信していますが、それを完全に見ることはできません。