从列表中删除包含一个或多个字符串的行

时间:2018-12-13 09:52:42

标签: excel excel-formula

我在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中是否包含 any 字符串。此外,匹配项必须区分大小写,并且可以在表2的任何位置进行。 ,不会删除带有“ special”的行,但是带有“SãoPaulo,SP”的行将被删除。

excel公式应该如何做?这两个表在同一张纸上,但是如果可以简化的话,我可以对其进行更改。

更新:我注意到Excel不会删除行,为此我需要一个脚本。在这种情况下,它可以以某种方式标记行或更改格式。表示该行为“匹配”的任何内容。

1 个答案:

答案 0 :(得分:0)

对于这个问题,我使用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