我有一个数据表,其中B列是数据类型列表。我唯一关心的值是值是否为SIS。
如果第2行在列B中具有值SIS并且第3行在列B中具有值SIS,则删除第2行。如果第3行包含值Topic,则保留第2行,忽略第3行,并查看第4行。
附图显示了带有名为VBA Instructions的列的样本数据。任何帮助表示赞赏。
我认为下面的方法可行,这是测试前面的单元格是否与当前单元格具有相同的值,如果是,那么它将删除它。在运行删除行的宏之前,我会将数据集复制到另一个工作表中。以下代码的唯一问题是,如果您有两个“主题”单元格紧挨着彼此,例如,如果“主题”标记位于第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