删除包含特定数据的2列的行
我有一个Excel文件,其中包含一个表,这个数据:
A | B | C | D ________________________________________________ 321 2016/12/01 0 0 123 2016/12/03 23 0 1321 2016/12/05 12 1 2315 2015/12/03 0 0 23154 2015/12/03 0 0
如果C AND
D的值是0,我想删除所有的行。我怎么能做到这一点?
确保你有第一行作为头一个,然后使用这个:
Sub Main() With Worksheets("mySheetName") With .Range("D1", .Cells(.Rows.Count, 1).End(xlUp)) .AutoFilter field:=3, Criteria1:=0 .AutoFilter field:=4, Criteria1:=0 If Application.WorksheetFunction.Subtotal(103, .Resize(, 1)) > 1 Then .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete End With .AutoFilterMode = False End With End Sub
考虑:
Sub RowKiller213() Dim i As Long, N As Long N = Cells(Rows.Count, "A").End(xlUp).Row For i = N To 1 Step -1 If Cells(i, "C").Value = 0 And Cells(i, "D").Value = 0 Then Cells(i, "C").EntireRow.Delete End If Next i End Sub
注意:
- 循环自底向上运行
短谷歌search给了我多种方法:
https://www.extendoffice.com/documents/excel/815-excel-remove-rows-based-on-cell-value.html
将filter应用于值为0的列C和D,并删除显示的行。