Ряд за строкой, удалить всю строку, если Ячейка Н = Ячейка I - PullRequest
0 голосов
/ 24 января 2019

Если ячейка H1 = ячейка I1, удалить всю строку.Затем следующий ряд, ячейка H2 <> ячейка I2, сохраните.Затем следующая строка.

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

Sub CellAequalCellB ()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")

    lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

    Set rng = ws.Range("H1:I" & lastRow)

    ' filter and delete all but header row
    With rng
        .AutoFilter field:=1, Criteria1:=" .AutoFilter field:=2 "

SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With

    ' turn off the filters
    ws.AutoFilterMode = False
End Sub

Однако, когда я запускаю, wholerow.delete возникает ошибка.

1 Ответ

0 голосов
/ 24 января 2019

Ваш код автофильтра содержит много ошибок, поэтому я изменил метод на простой обратный цикл.

sub CellAequalCellB ()
    Dim ws As Worksheet, rng As Range
    Dim lastRow As Long, i as long

    with ThisWorkbook.Sheets("Sheet1")

        lastRow = .Range("A" & .Rows.Count).End(xlUp).Row

        for i=lastrow to 1 step -1
            if .cells(i, "H") = .cells(i, "I") then _
                .rows(i).EntireRow.Delete
        next i

    end with

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...