根据单元格值过滤条件

时间:2017-06-01 11:28:18

标签: excel vba excel-vba

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

有效:

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"

标准的理想输入是什么?

2 个答案:

答案 0 :(得分:1)

您可以将LATAM放入Q101上午{100} NOAM(两者都没有引号),并使用Criteria1:=ThisWorkbook.Worksheets("Cost Table").Range("Q100:Q101").Value作为标准。

答案 1 :(得分: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, """",""), ",")