检查单元格是否包含“特定单词”,然后删除行

时间:2019-05-15 02:15:06

标签: excel vba

我尝试了该代码,但是它仍然无法删除包含DNP的单元格。代码有问题吗?谢谢

'检查列是否包含dnp,然后删除行

Last = wsInput.Range("H" & Rows.Count).End(xlUp).Row
For iCntr = Last To 3 Step -1
If InStr(1, wsInput.Cells(iCntr, "H"), "dnp", vbTextCompare) = "[dnp]"Then 

         wsInput.Cells(iCntr, "H").EntireRow.Delete
    End If
Next iCntr

1 个答案:

答案 0 :(得分:0)

创建一个范围,然后执行1次删除,比多次删除要好得多。

:body

您的计算机不工作的原因是因为Sub Temp() Dim DelRange As Range, iCntr as Long For iCntr = 3 to Range("H" & Rows.Count).End(xlUp).Row If InStr(1, Range("H" & iCntr).Text, "dnp", vbTextCompare) > 0 Then If DelRange Is Nothing Then Set DelRange = Range("H" & iCntr) Else Set DelRange = Union(DelRange, Range("H" & iCntr)) End If End If Next iCntr If Not DelRange Is Nothing Then DelRange.EntireRow.Delete End Sub 返回了一个数字,该数字显示了找到的第二个字符串在第一个字符串中的位置。如果找到字符串,它将返回> 0,否则返回0

如果您想在不循环范围的情况下(这样做会更快),可以像这样使用Instr

Find