如果列B中不存在某些数字,我将尝试删除整行。例如,除非列B中的单元格包含“ 812”,“ 820”或“ 840”,否则请删除整行。
行1和2是标题。数据从第3行开始。ws的长度总是在变化。
如果有关系,则B列中列出的数字的格式应为“常规”。
请帮助。我已经搜索并测试了几天。要么一切都在删除,要么什么都没有。
谢谢。
答案 0 :(得分:1)
这应该为您工作。要实施,请打开 VBE >将代码粘贴到要执行代码的工作表上。
删除行时,最好的方法是从下至上进行操作。因此,这将从最后一行(LRow
)到第3行遍历B中的值。
如果该值与您的目标值匹配,它将简单地移至下一行(上方)。
如果该值与您的目标不匹配,它将删除整行。
Sub RowScrub()
Dim LRow As Long, I As Long
LRow = Range("B" & Rows.Count).End(xlUp).Row
For I = LRow To 3 Step -1
If Range("B" & I).Value <> 812 And Range("B" & I).Value <> 820 And Range("B" & I).Value <> 840 Then
Range("B" & I).EntireRow.Delete
End If
Next I
End Sub