如何自动筛选或类似仅包含某些单词

时间:2014-07-30 10:37:39

标签: excel vba excel-vba filter autofilter

我知道我可以使用这样的自动过滤器来删除包含某些字符串的某些行,如下所示(在此示例中,删除的行包含字符串" 111-11111")。

Set ws = Sheets("Gate_Results")
Set rng1 = ws.Range(ws.[u1], ws.Cells(Rows.Count, "U").End(xlUp))
With ActiveSheet
    .AutoFilterMode = False
    rng1.AutoFilter Field:=1, Criteria1:="111-11111"
    rng1.Offset(1, 0).EntireRow.Delete
    .AutoFilterMode = False
End With

但是我想知道是否有办法删除不包含标准的字符串。一个例子是如果字符串### - #####代表产品代码,如果我想过滤我的列表以查看代码库中只有3种不同的产品,我可以使用AutoFilter函数这样做吗? ,如果是这样的话?

我已经尝试了以下(和类似的例子,但在条件1部分的其他字符串中使用& -ing),但它根本不起作用,但这只是我的业余猜测。

Set ws = Sheets("Gate_Results")
Set rng1 = ws.Range(ws.[u1], ws.Cells(Rows.Count, "U").End(xlUp))
With ActiveSheet
    .AutoFilterMode = False
    rng1.AutoFilter Field:=1, Criteria1:<>"111-11111"
    rng1.Offset(1, 0).EntireRow.Delete
    .AutoFilterMode = False
End With

我很欣赏找到工作方法的任何帮助,即使它不涉及自动过滤器。但效率将得到额外的赞赏。 :d

1 个答案:

答案 0 :(得分:1)

您需要将<>放在引号之间。所以:

Set ws = Sheets("Gate_Results")
Set rng1 = ws.Range(ws.[u1], ws.Cells(Rows.Count, "U").End(xlUp))
With ActiveSheet
    .AutoFilterMode = False
    rng1.AutoFilter Field:=1, Criteria1:"<>111-11111"
    rng1.Offset(1, 0).EntireRow.Delete
    .AutoFilterMode = False
End With