根据单元格值过滤标准

我想根据单元格值过滤一个范围:

有用:

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" 

什么是标准的理想input?

如果您想要应用更多的值,您必须创build一个数组。

 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 

NB如果你的单元格Q100包含引号,你必须摆脱它:

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

您可以将Q100中的LATAM放入Q101(均不带引号),并使用Criteria1:=ThisWorkbook.Worksheets("Cost Table").Range("Q100:Q101").Value