2016-12-13 2 views
2

У меня есть этот код, который удаляет только строку, содержащую буквы PGM: AGEDP, но я не знаю, как удалить следующий три строки после первого удаления. Три строки после PGM: AGEDP строки являются нежелательными, они содержат несколько букв, цифр и символов, которые приходят в разнообразии каждый раз, но буквы PGM: AGEDP всегда будет оставаться неизменным. Просто для простоты, если первая строка содержит буквы, то он должен быть удален с нижней еще три rows.These четыре ряда приходят очень обижают в целом листе более 30XsVBA: Как удалить следующие три строки на основе критериев?

Sub RemovingPGM() 

Dim ws As Worksheet 
For Each ws In Sheets 
ws.Activate 

    Dim n As Long 
    Dim nlast As Long 
    Dim rw As Range 
    Set rw = ActiveWorkbook.ActiveSheet.UsedRange.Rows 
    nlast = rw.Count 
    For n = nlast To 1 Step -1 
     If (rw.Cells(n, 1).Value = "PGM:AGEDP") Then 
      rw.Rows(n).Delete 
     End If 
    Next n 
    Next ws 
End Sub 

Любой вопрос, касающийся дальнейшего объяснения пожалуйста бесплатно спросить.

+2

rw.Rows (п) .Resize (4) .Delete – user3598756

+0

Вы можете сделать: rw.Rows (п) .Delete, rw.Rows (п-1) .Delete, rw.Rows (n- 2). Удалить, rw.Rows (n-4). Удалить –

+0

@ user3598756 Lol Спасибо, это сработало просто отлично. – MTBthePRO

ответ

0
Sub Second_DeletingPGM() 
    Dim n As Long 
    Dim nlast As Long 
    Dim rw As Range 

    Set rw = ActiveWorkbook.ActiveSheet.UsedRange.Rows 

    nlast = rw.Count 
    For n = nlast To 1 Step -1 
     If (rw.Cells(n, 1).Value = "PGM:AGEDP") Then 
      rw.Rows(n).Resize(4).Delete 
     End If 

    Next n 
End Sub 
Смежные вопросы