我在下面编写了下面的宏,当SMT02表上有数据(示例)12345
时,它非常有用。
因此,如果存在12345
,则会保留这些行,并使用其他数据删除其余行。
但我希望它以这种方式工作,即使12345
不存在,那么我仍然希望删除其他所有(行)。目前它调试并停止。有人可以帮忙吗?
Dim c As Range
Dim SrchRng
Sheets("SMT02").Select
Range("B1").Select
Set SrchRng = ActiveSheet.Range("B1", ActiveSheet.Range("B65536").End(xlUp))
Do
Set c = SrchRng.Find("12345", LookIn:=xlValues)
If Not c Is Nothing Then c.EntireRow.Delete
Loop While Not c Is Nothing
答案 0 :(得分:0)
如果您尝试删除工作表中的每一行,当值为" 12345"在特定工作表(示例中的SMT02)的指定列(示例中的B列)的单元格中不存在我认为您会发现这有效:
Sub DeleteRowIfNot12345()
Dim Rng As Range
Dim x As Long
Sheets("SMT02").Select
Set Rng = Range("B1:B" & Range("B65536").End(xlUp).Row)
For x = Rng.Rows.Count To 1 Step -1
If InStr(1, Rng.Cells(x, 1).Value, "12345") = 0 Then
Rng.Cells(x, 1).EntireRow.Delete
End If
Next x
End Sub