Excel VBA自动filter – “开始”的多个标准

我正在使用vba在Excel 2010中自动筛选列表,并希望根据3个或更多“开始”条件(即“a *”,“b *”,“c *”)自动筛选列表。 不幸的是,据我所知,使用Operator:= xlOr只能有两个“开始”的标准。

VBA自动filter(文本filter)与“开始”多标准接受的答案看起来像它会工作。 然而,循环遍历列表中的每个项目并将值添加到数组中,然后自动筛选与这些项目的完全匹配是很麻烦的。 特别是非常大的列表。

是否有更好的方式来自动筛选两个以上的“开始”标准?

注意:接受的答案,但是OP在使用问题中前面提到的Gary的答案

假设我们有这样的数据:

在这里输入图像说明

我们希望看到以ADM开头的项目。

运行这个macros:

Sub ThreeWay() Dim rng As Range, r As Range Set rng = Range("A2:A25") For Each r In rng v = Left(r.Value, 1) If v = "A" Or v = "D" Or v = "M" Then r.EntireRow.Hidden = False Else r.EntireRow.Hidden = True End If Next r End Sub 

会产生: 在这里输入图像说明

注意:

  • 这是一个“手动过滤”而不是真正的AutoFilter
  • 如果你绝对必须有一个自动filter,然后使用我的旧邮政的方法