如何AutoFilter或类似的只包括某些单词

我知道我可以像这样使用自动filter来移除包含某些string的特定行,如下所示(在本例中,被移除的行包含string“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 

然而,我想知道是否有一种方法来删除不包含标准的string。 例如,如果string### – #####表示产品代码,如果我想筛选我的列表以查看代码库中只有3种不同的产品,我可以使用AutoFilter函数来执行此操作如果是的话,怎么样?

我尝试了以下(和类似的例子,但在标准1部分的附加string中),然而它根本不起作用,但这只是我的业余猜测。

 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 

我会感谢任何帮助find一个工作方法,即使它不涉及自动filter。 但效率会得到额外的赞赏。 :d

你需要把<>放在引号之间。 所以:

 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