我尝试了该代码,但是它仍然无法删除包含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
答案 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