2017-06-22 149 views
-1

我想篩選超過9000行的巨大列表。 每行是一個單獨的項目,並且所有的行都位於表格「Table2」中; 工作表是「最終數據」Excel自定義篩選器與VBA

下限需要過濾的是「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

我編輯我的帖子,希望看起來不那麼困惑。 該代碼不起作用。 和具體我只在最後出現錯誤 ActiveSheet.ListObjects( 「表2」)Range.AutoFilter場:= 1, 標準1:= _ 「> = 17-0034」,運營商:= X 1和,Criteria2:=「<= 17-0152」,操作員:= xlFilterValues – DougthePug

回答

0

x1And未定義。你可以很容易地捕捉到,如果你使用Option Explicit

x1And替換爲xlAnd('l'ell,不是'1'),您的過濾器將正常工作。

+0

你確實是正確的!像魅力一樣工作 – DougthePug

+0

我實際上使用了選項Explicit,但我認爲它不喜歡我使用的值。我不認爲這是可能的,因爲文本值 – DougthePug

+0

你知道如何做同樣的操作,而是讀取單元格的下限和上限? LBound:= A1; UBound:= A2'Dim a,b As Variant a =工作表(「Welcome」)。單元格(1,「A」)。值b =工作表(「歡迎」)。單元格(2,「A」)。值ActiveSheet .ListObjects(「Table2」)。Range.AutoFilter Field:= 1,Criteria1:= _> = a,Operator:= xlAnd,Criteria2:= <= b,Operator:= xlFilterValues' – DougthePug