所以基本上,我需要删除主键字段中没有3作为第二个数字的所有记录,例如可以看起来像这样
#39001
或没有#3
我想要的是所有非#3开始的单元格,它们的行被删除我想出了以下代码,它会删除所有,但宏永远不会停止运行..
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
有什么想法吗?
由于
答案 0 :(得分:0)
请改为尝试:
Sub keep3()
Dim i As Integer
For i = 14000 To 2 Step -1
If Mid(Cells(i, 2), 2, 1) = "3" Then
Rows(i).EntireRow.Delete
End If
Next
End Sub
请注意,循环是向后的 - 这是因为当你删除一行时,下面的行会被拉起来,所以你的循环可以做一些奇怪的事情,如果你前进然后删除一行,因为你可能会跳过您可能还想删除的下一行。此外,我更改了IF语句,因为您说要删除第二个字符为3的行。