Удалить строки, содержащие одну или несколько строк из списка - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть лист в Excel с множеством строк со значениями.Для каждой строки на этом листе Excel должен проверить, соответствует ли ее содержимое любому строк другой таблицы.Если он соответствует одному или нескольким , строка должна быть удалена.

Пример:

Table 1 (delete criteria):
SP
MG
AC
SP
RR

Table 2 (table with content to be deleted):
special
São Paulo, SP
roraima
macapá

Таким образом, для каждой строки таблицы 2 я должен проверить, содержит ли она любые строки в таблице 1. Кроме того, совпадение должно быть регистромчувствительный, и может встречаться в любой позиции таблицы 2. Таким образом, строка с «special» НЕ будет удалена, а строка с «São Paulo, SP» будет.

Как должна быть формула Excel для этого?Обе таблицы находятся на одном листе, но я могу изменить это, если это будет проще.

Обновление: до меня дошло, что Excel не удаляет строки, мне нужен скрипт для этого.В этом случае он может как-то пометить строки или изменить форматирование.Все, что сигнализирует об этой строке как о «совпадении».

1 Ответ

0 голосов
/ 13 декабря 2018

Для этого вопроса я использую Sheet1:

enter image description here

Попробуйте:

Option Explicit

Sub test()

    Dim LR As Long, i As Long, j As Long, Result As Long
    Dim Value1 As String, Value2 As String

    With ThisWorkbook.Worksheets("Sheet1")

        For i = 12 To 9 Step -1
            Value2 = .Range("A" & i).Value

            For j = 2 To 6
                Value1 = .Range("A" & j).Value
                Result = InStr(1, Value2, Value1)

                If Result > 1 Then
                    .Rows(i).Delete
                    Exit For
                End If

            Next j

        Next i

    End With

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