如果某些数字不存在,则VBA Excel删除行

时间:2018-06-19 18:58:45

标签: excel vba

如果列B中不存在某些数字,我将尝试删除整行。例如,除非列B中的单元格包含“ 812”,“ 820”或“ 840”,否则请删除整行。

行1和2是标题。数据从第3行开始。ws的长度总是在变化。

如果有关系,则B列中列出的数字的格式应为“常规”。

请帮助。我已经搜索并测试了几天。要么一切都在删除,要么什么都没有。

谢谢。

1 个答案:

答案 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