2017-06-05 102 views
0

嗨我有下面的代碼,我希望使用VBA來篩選Excel中的列表,每個列表將根據我選擇的公司而有所不同。VBA跳過篩選器條件

With wsDest.Rows(1) 
.AutoFilter field:=3, Criteria1:="Swap", Operator:=xlOr, Criteria2:="FwdSwap", Operator:=xlOr, Criteria3:="NDS" 
    If wsDest.Range("C1:C" & lr).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then 
    wsDest.Range("G2:G" & lr).SpecialCells(xlCellTypeVisible).Copy wsDest.Range("J" & Rows.Count).End(3)(2) 
    End If 
.AutoFilter 
End With 

wsDest是我的工作在工作表中,代碼工作正常,只是很多我正在篩選中不包含「NDS」和代碼休息時,發生這種情況的列表。有沒有一種方法可以讓我提前

+0

指出,目前的變化沒有' Criteria3'參數 - 請參閱:https://msdn.microsoft.com/en-us/library/office/ff193884.aspx。你可能也想檢查一下:https://stackoverflow.com/questions/21834701/use-autofilter-on-more-than-2-criteria。不知道它是否重複。 –

+0

是否只要數據中存在「NDS」條目,並且只有在數據中沒有「NDS」條目時纔會崩潰,那麼發佈的代碼纔有效? – YowE3K

回答

2
.AutoFilter field:=3, Criteria1:="Swap", Operator:=xlOr, Criteria2:="FwdSwap", Operator:=xlOr, Criteria3:="NDS" 

你的語法這裏加入到這個「如果NDS在列表中存在,然後使用過濾器,否則跳過NDS作爲過濾器」

非常感謝是不正確的過濾功能多重標準。雖然存在Criteria2,但此方法沒有Criteria3等等。如果要過濾的多個值

,你應該使用一個數組Criteria1

.AutoFilter Field:=3, Criteria1:=Array("Swap", "FwdSwap", "NDS"), Operator:=xlFilterValues 

還要注意在操作員到xlFilterValues由@ YowE3K

+0

@ YowE3K好點,更正:) – Carrosive

+0

太棒了,非常感謝你們 – Ollie