2016-12-21 2 views
0

У меня есть файл первенствовать, содержащий один лист, который эти данные:удалить строки с 2 колонки, содержащие конкретные данные

 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. Как я могу добиться этого?

+0

Возможный дубликат [Как удалить строку на основе значения ячейки] (http://stackoverflow.com/questions/14613609/how-to-delete-row-based-on-cell-value) –

+0

Да, это можно дублировать. Но в моем случае есть 2 столбца, которые могут находиться в состоянии удаления строки –

+0

В вашем случае должно быть просто добавление кода, чтобы учитывать оба столбца C и D, а не только один столбец (это то, что вы говорите в своем комментарии?) –

ответ

1

убедитесь, что у вас есть первая строка в качестве заголовка одной, а затем использовать этот :

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 
+0

С - не разрешено наружу в качестве процедуры. –

+0

вы должны обернуть этот код в блок 'Sub WhateverName()' End Sub'! См. Отредактированный код – user3598756

+0

также изменить «mySheetName» с вашим фактическим именем листа ... – user3598756

0

Применить фильтр Cols C и D, где значение равно 0, и удалять отображаемые строки.

1

Рассмотрим:

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 

Примечание:

  • петля проходит снизу вверх
+0

Спасибо за ваш ответ. «Ссылка на объект не найдена» –