如果单元格不包含关键字,请将其删除

时间:2015-12-06 17:25:46

标签: excel vba excel-vba

我有一个包含目录的列。

如何搜索不包含关键字的单元格并将其删除?

例如,如果我有这样的列:

C:\Users\Desktop\Folder\html\test.html
C:\Users\Desktop\Folder\book.html
C:\Users\Desktop\Folder\Documents\test.html
C:\Users\Desktop\Folder\frontpage.html
C:\Users\Desktop\Folder\test.html

我想搜索关键字“test.html”,我应该最终得到这个:

C:\Users\Desktop\Folder\html\test.html
C:\Users\Desktop\Folder\Documents\test.html
C:\Users\Desktop\Folder\test.html

应删除第2行和第4行。

我发现了一些有用的东西,但是如果检查整个列,我需要很长时间才能完成(所以我只使用100个)。

Dim rng As Range
Dim cell As Range
Dim ContainWord As String

Set rng = Range("A1:A100")

ContainWord = "keyword"

For Each cell In rng.Cells
If cell.Find(ContainWord) Is Nothing Then cell.Clear
Next cell

2 个答案:

答案 0 :(得分:3)

试试这个,它应该更快:

With UsedRange
    .AutoFilter 1, "<>*test.html*", xlAnd, , False
    .SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With

答案 1 :(得分:0)

替换:

Set rng = Range("A1:A100")

使用:

Set Rng = Intersect(Range("A:A"), ActiveSheet.UsedRange)