如果行的一个单元格中的值在下一行的同一列中重复,则删除行

问题描述 投票:0回答:1

我有一个数据表,其中B列是数据类型列表。我唯一关心的值是值是否为SIS。

如果第2行在列B中具有值SIS并且第3行在列B中具有值SIS,则删除第2行。如果第3行包含值Topic,则保留第2行,忽略第3行,并查看第4行。

附图显示了带有名为VBA Instructions的列的样本数据。任何帮助表示赞赏。

excel vba
1个回答
0
投票

我认为下面的方法可行,这是测试前面的单元格是否与当前单元格具有相同的值,如果是,那么它将删除它。在运行删除行的宏之前,我会将数据集复制到另一个工作表中。以下代码的唯一问题是,如果您有两个“主题”单元格紧挨着彼此,例如,如果“主题”标记位于第3行和第4行,则第3行将被删除。

Sub test()


Columns("A:A").Insert Shift:=xlToRight
last = Cells(Rows.Count, 3).End(xlUp).Row


For Each Cell In Range("C2:C" & last)
    If (Cell = Cells(Cell.Row + 1, 3)) = True Then
        Range("A" & Cell.Row).Value = True
    Else:
        Range("A" & Cell.Row).Value = False
    End If
Next Cell

For x = 2 To last:
    If Cells(x, 1) = True Then
        Rows(x).Delete
        x = x - 1
    End If
Next x

Columns("A:A").Delete

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.