检查单元格是否包含特定的子字符串

时间:2019-10-22 14:54:30

标签: excel vba

我想遍历一列中的单元格,并检查每个单元格是否包含特定的子字符串。

我有用于精确搜索的代码,但我不知道如何搜索子字符串

Sub Macro1()
    For i = 2 To 2500
        If Cells(i, 7).Value = "ALSO DEUTSCHLAND GMBHLMP" Then
            Cells(i, 2).Value = "sometext"
        End If
    Next i
End Sub

对LMP的子字符串搜索也应提供以上输出。

2 个答案:

答案 0 :(得分:4)

使用InStr测试String是否包含子字符串。

If InStr(1, Cells(i, 7).Value, "LMP", vbBinaryCompare) > 0 Then

对于字符串比较(最后一个参数),您有几种选择:

  

vbUseCompareOption:使用 Option Compare 语句的设置执行比较。

     

vbBinaryCompare:执行二进制比较。

     

vbTextCompare:执行文本比较。

我建议您假设vbBinaryCompare区分大小写

注意:您也可以使用Like,如this question所示。

答案 1 :(得分:2)

我可能会使用类似范围的find方法

Sub FindIt()

    Dim rg As Range
    Set rg = Range("G2:G2500")

    Dim fndRg As Range
    Dim firstAddress As String

    With rg

        Set fndRg = .Find("ALSO DEUTSCHLAND GMBHLMP", , xlValues)

        If Not fndRg Is Nothing Then
            firstAddress = fndRg.Address
            Do
                fndRg.Offset(, -5).Value = "some text"
                Set fndRg = .FindNext(fndRg)
            Loop While Not fndRg Is Nothing And fndRg.Address <> firstAddress
        End If
    End With

End Sub