删除主键中没有#3的所有行作为开头

所以基本上,我需要删除没有3作为主键字段中的第二个数字的所有logging,例如,可以看起来像这样

#39001 

或者没有#3

我想要的是所有的单元格有一个非#3开始,他们的行被删除我想出了下面的代码,它删除了一些非#3,但不是全部。 我有超过13000行扫描

 Sub keep3() ' ' RemoveNum Macro Dim i As Integer For i = 2 To 14000 If InStr(Cells(i, 2), "3") = 2 Then Else Rows(i).EntireRow.Delete End If Next i End Sub 

如果你能把我指向正确的方向,我将不胜感激!

谢谢!

当你删除一行下面的所有行向上移动,然后你增加“我”,实质上跳过新移动的行。 尝试以下代替…

 Sub keep3() ' ' RemoveNum Macro Dim i As Integer i = 2 While i < 14000 If InStr(Cells(i, 2), "3") = 2 Then ' Do nothing i = i + 1 Else Rows(i).EntireRow.Delete ' Note - not incrementing i here End If Wend End Sub 

2种可能性:

删除有Else的行。 我认为这是阻止删除从你想要的方式工作。 我假设你没有超过14000行的数据….

或者可能是,当你删除行时,它会扰乱你正在运行的行的顺序。