Как удалить определенные несколько строк в Excel?

Как удалить определенные несколько строк в Excel?

У меня пять листов в одном документе. На первом листе есть строки, которые содержат значения в первом столбце. Мне нужно удалить все эти строки из остальных листов, которые имеют то же значение в первом столбце, совпадающее со значением первого столбца первого листа. Проблема в том, что есть много записей с разными значениями столбцов, которые должны быть удалены. Как мне просто найти все эти строки, содержащие значения с первого листа (или общие для первого листа) и удалить их?

решение1

Пройдя по каждому значению в столбце A листа Sheet1 и используя это значение для фильтрации оставшихся 4 листов, вы получите искомые результаты.

Sub remove_from_2_to_5()
    Dim var As Variant, w As Long, rw As Long

    With Sheets(1)
        For rw = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            If Not IsEmpty(.Cells(rw, 1)) Then
                var = .Cells(rw, 1).Value
                For w = 2 To 5
                    With Sheets(w).Cells(1, 1).CurrentRegion
                        .AutoFilter
                        .AutoFilter field:=1, Criteria1:=var
                        With .Offset(1, 0).Resize(.Rows.Count, .Columns.Count)
                            If CBool(Application.Subtotal(103, .Columns(1))) Then
                                .SpecialCells(xlCellTypeVisible).EntireRow.Delete
                            End If
                        End With
                        .AutoFilter
                    End With
                Next w
            End If
        Next rw
    End With

End Sub

Когда первый цикл For/Next проходит по столбцу A листа Sheet1, он записывает найденное значение. Оно используется в каждом из оставшихся листов в качестве критерия в операции .AutoFilter. Если есть ячейки, отображаемые после применения фильтра, строки удаляются.

решение2

Вставьте столбец в каждый лист, чтобы проверить, встречается ли значение в первом столбце в первом листе: =iferror(match(a2,sheet1!a:a,0)>0,false)
Вы получите trueстроки, в которых первый столбец встречается в первом листе, отфильтруйте их и удалите.
Если у вас несколько листов и вам нужно еще более быстрое решение, то вам нужен макрос.

Связанный контент