我有一个Excel工作表,我想根据条件从其中删除一些行来进行清理。如果列表上特定列中的单元格包含一组值中的一个值,则具有此单元格的行应从列表中删除。
工作表上的数据表的标题带有列名。
到目前为止,我已经尝试根据一个标准来清洁我的床单: 第一列中的单元格应与“ Stacy R”的名称匹配。
我在这里阅读了最好的方法是使用自动过滤器。我提供了以下解决方案:
Sub RemoveRowswFilter()
Dim rng1 As Range, rng2 As Range, rng3 As Range
Set rng1 = Cells.Find("*", , xlValues, , xlByColumns, xlPrevious)
Set rng2 = Cells.Find("*", , xlValues, , xlByRows, xlPrevious)
Set rng3 = Range(Cells(rng2.Row, rng1.Column), Cells(1, rng1.Column))
Application.ScreenUpdating = False
With rng3.Offset(1, 1).Resize(rng3.Rows.Count, 1)
.FormulaR1C1 = "=RC01=""Stacy R"""
End With
With rng3.Offset(0, 1).Resize(rng3.Rows.Count, 1)
.AutoFilter Field:=1, Criteria1:="TRUE"
End With
With rng3.Offset(1, 1).Resize(rng3.Rows.Count - 1, 1)
.EntireRow.Delete
On Error Resume Next
End With
Application.ScreenUpdating = True
End Sub
我想通过删除包含“ Stacy R”(不带引号)的所有行来清理工作表数据。
我创建的宏无法正常工作:它使我失去了一张干净的纸。相反,我希望它应该将所有原始数据都保留在没有任何单元格包含我的critera的地方。
请帮助我清理工作表并根据条件删除行。谢谢。