Excel 自动筛选-如何用变量创建数组

Excel 自动筛选-如何用变量创建数组,excel,autofilter,vba,Excel,Autofilter,Vba,A列中有一些名称,每个重新编码名称的字符串位于一个单元格中。注意,括号前有2个空格: Doe, John (New York) Smith, Will (Philadelphia) Banks, Carlton (LA) 在另一张纸上,我有一个列,列中有多个相同格式的名字。 我想创建一个数组,以便在Excel的自动筛选中使用它 既然我知道如何创建一个循环来遍历所有的名称,你能帮我创建一个合适格式的数组吗 我尝试了下面的方法,但无效,过滤器会隐藏所有名称。 当我调试.Print变量kryt

A列中有一些名称,每个重新编码名称的字符串位于一个单元格中。注意,括号前有2个空格:

Doe, John  (New York)
Smith, Will  (Philadelphia)
Banks, Carlton  (LA)
在另一张纸上,我有一个列,列中有多个相同格式的名字。 我想创建一个数组,以便在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
你必须使用VBA吗? 我将添加两个额外的列,其中包含提取的名称,并对这些列应用数据过滤器

姓氏列:=LEFTA1,FIND,,A1-1


名字列:=MIDA1,LENB1+3,FIND,A1-3-LENB1

我非常感谢VBA。下面是我建立的部分工作原理:如果k>0,那么kryterium=kryterium&&&sNameStat&Else kryterium=&sNameStat&End If Debug.Print kryterium k=k+1 End If ari=Splitkryterium,但这只给了我一个名称。我不知道如何调试。打印数组中的实际内容…您已使用split将字符串拆分为数组,但您的条件是Criteria1:=Arrayary,。我认为数组可能会混淆一些东西,数组是指有一个数组的数组。我认为ary应该可以工作。实际上,经过几十次尝试,我已经找到了一个工作代码:如果k>0,那么kryterium=kryterium&&,|&&sedziaNameStat,否则kryterium=sedziaNameStat如果k=k+1 ary=Splitkryterium&,|&,| ActiveSheet.Range$B$1:$B$&lastSedziaStat.AutoFilter字段:=1,Criteria1:=Arrayary,运算符:=xlFilterValues结论-Arrayary工作正常。谢谢你的努力。