2017-06-01 117 views
0

我想根據單元格值,用以過濾範圍:過濾標準

它的工作原理:

ThisWorkbook.Worksheets("Cost Table").Range("$A$38:$O$68").AutoFilter Field:=2, Criteria1:=Array("LATAM", "NOAM"), Operator:=xlFilterValues 

不起作用:

ThisWorkbook.Worksheets("Cost Table").Range("$A$38:$O$68").AutoFilter Field:=2, Criteria1:=ThisWorkbook.Worksheets("Cost Table").Range("Q100").Value, Operator:=xlFilterValues 

Q100 = "LATAM", "NOAM" 

什麼期望的標準輸入?

+0

''LATAM「,」NOAM「'Q100'中的確切值嗎? –

+0

是的,我已經嘗試過不帶引號和雙引號。 – Erika

回答

0

如果您想要應用更多的那個值,您必須創建一個數組。

dim crit() as string 
crit = split(ThisWorkbook.Worksheets("Cost Table").Range("Q100").Value, ",") 
ThisWorkbook.Worksheets("Cost Table").Range("$A$38:$O$68").AutoFilter Field:=2 Criteria1:=crit, Operator:=xlFilterValues 

N.B.如果你的Q100包含引號,你必須擺脫它:

crit = split(replace(ThisWorkbook.Worksheets("Cost Table").Range("Q100").Value, """",""), ",") 
+0

爲什麼你不更新你的答案顯示刪除雙引號 - 這將使它成爲一個正確的答案 –

+0

@FunThomas:謝謝,它按預期工作! – Erika

+0

@ Robin Mackenzie:因爲通常單元格中沒有引號,請參閱Erikas評論 – FunThomas

1

你可以把LATAM在Q100 Q101中我NOAM(兩者不帶引號),然後使用Criteria1:=ThisWorkbook.Worksheets("Cost Table").Range("Q100:Q101").Value作爲標準。