自动过滤器 - 如何使用变量创建数组

时间:2016-03-30 07:15:46

标签: excel excel-vba autofilter vba

我的列A带有一些名称,每个字符串重新命名的名称都在一个单元格中(注意括号前的2个空格):

Doe, John  (New York)
Smith, Will  (Philadelphia)
Banks, Carlton  (LA)

然后在另一张纸上,我有一列A,列有多个具有相同格式的名称。 我想创建一个数组,以便在Excel中的自动过滤器中使用它。

鉴于我知道如何创建一个遍历所有名称的循环,你能否帮助我以合适的格式创建数组?

我尝试了以下但是它不起作用,过滤器隐藏了所有名称。 当我调试.Print变量kryterium时,我得到了我需要的字符串:

If k > 0 Then
   kryterium = kryterium & ", " & sNameStat
Else
   kryterium = sNameStat
End If

ary = Split(kryterium, ", ")

ActiveSheet.Range("$A$1:$A$49").AutoFilter Field:=1, Criteria1:=Array(ary), Operator:=xlFilterValues

1 个答案:

答案 0 :(得分:-1)

你必须使用VBA吗? 我会添加几个带有提取名称的额外列,并将数据过滤器应用于这些列。

姓氏栏:=LEFT(A1,FIND(",",A1)-1)

Forename列:=MID(A1,LEN(B1)+3,FIND("(",A1)-3-LEN(B1))