我想遍历一列中的单元格,并检查每个单元格是否包含特定的子字符串。
我有用于精确搜索的代码,但我不知道如何搜索子字符串
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的子字符串搜索也应提供以上输出。
答案 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