2017-06-22 9 views
-1

私は9000以上の行の巨大なリストをフィルタリングしようとしています。 各行は個別のプロジェクトで、 すべての行がテーブル「Table2」にあります。 シートは「最終データ」VBAを使用したExcelのカスタムフィルタ

下限は「17-0034」です。バインド アッパーはテキストとして読み込まれ、コードの最後の部分はここ

を動作しませんどのように私は、これらのより低い&上限 値との間にフィルタん「17から0152」

あるコードです

Private Sub CommandButton2_Click() 
Sheets("Final Data").Select 
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=19, Criteria1:= _ 
    Array("Active", "Completed", "Main"), Operator:=xlFilterValues 
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=20, Criteria1:= _ 
    "RTB" 

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Criteria1:= _ 
    ">=17-0034", Operator:=x1And, Criteria2:="<=17-0152", Operator:=xlFilterValues 
End Sub 
+1

あなたの質問は何ですか? –

+0

自分の投稿を編集したのでうまくいけば混乱は少ないようです。 コードが機能しません。 特に私はRange.AutoFilterフィールドのみ最後の部分でエラー ActiveSheet.ListObjects( "表2")を取得します。= 1、 Criteria1:= _ "> = 17から0034"、演算子:= x1And 、Criteria2:= "<= 17-0152"、演算子:= xlFilterValues – DougthePug

答えて

0

x1Andは未定義です。 Option Explicitを使っていれば、それを簡単に捕まえることができます。

x1AndこれをxlAnd( '1'、 '1'でない)に置き換えてください。フィルタが正常に動作します。

+0

本当に正解です!魅力のように動作します – DougthePug

+0

私は実際にはExplicitというオプションを使用していましたが、使用していた値が好きではないと思っていました。私はそれがテキスト値のために可能だったとは思わなかった – DougthePug

+0

あなたは同じ操作を行う方法を知っているかわりに、下限と上限をセルから読み取るでしょうか? LBound:= A1; Ubound:= A2 'Dim a、bバリアントa =ワークシート("ようこそ ")セル(1、" A ")値b =ワークシート("ようこそ ")セル(2、" A ")値ActiveSheet => = a、オペレータ:= xlAnd、Criteria2:= <= b、オペレータ:= xlFilterValues ' – DougthePug

関連する問題