如何使用instr函数而不管忽略字符串的敏感性。例如:“渗透,渗透,渗透”

时间:2017-07-04 12:25:03

标签: vba excel-vba excel

Problem description

Sub Update_Click()
  Dim i As Integer
  i = 5
  Do Until i > 100  'repeat function below till row 100'

    If InStr(1, (Cells(i, 5).Value), "Struck") > 0 Then  
      Cells(i, 8).Value = "Near miss"
    End If

    If InStr(1, (Cells(i, 5).Value), "Cut") > 0 Then
      Cells(i, 8).Value = "Minor"
    End If

    i = i + 1

  Loop        'close loop formula'
End Sub

我想搜索STRUCK,hitck,Struck,CUT,Cut,cut等字样

1 个答案:

答案 0 :(得分:0)

您可以将字符串更改为UCase或LCase。然后比较它,像这样:

Public Sub TestMe()

    Debug.Print "asd" = "aSd"
    Debug.Print UCase("asd") = UCase("ASD")
    Debug.Print LCase("aSd") = LCase("ASD")

End Sub

UCASE:

https://www.techonthenet.com/excel/formulas/ucase.php

在评论中使用Alex K.的例子,它将是这样的:

?instr(1, ucase("A BBB C"), ucase("bBb"))

如果你没有传递可选的vbCompareMethod参数,这个参数完全是为此指定的。