1

私は現在、メインフレームからのデータを扱っていますが、ここに示されているデータとは異なります。この場合、基準とターゲット データ セットには 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 コードは失敗しません。範囲に基づいて適切にフィルタリングされないだけです。

簡単な解決策があると確信していますが、それを完全に見ることはできません。

4

2 に答える 2