2017-07-04 8 views
1

Problem description文字列の大文字と小文字を区別しないでinstr関数を使用する方法。例えば: "浸透、普及、浸透"

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単語を検索したい、打た打た、CUT、カットを、あなたがUCase関数に文字列を変更することがあり

+2

問題の説明フィールドとしてタイトルを使用しないでください。 – ckruczek

+1

'vbTextCompare'ここで' instr(1、 "A BBB C"、 "bBb"、vbTextCompare) 'は3を返します –

答えて

0

を切りますか、 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

コメントでアレックス・K.の例を使用して、それはこのようになります:

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

場合オプションのvbCompareMethod引数を渡すことはありません。これは正確に指定されています。

+0

@Seyiotuks - うまくいくはずです。しかし、おそらく 'vbTextCompare'ではもっと分かりやすいでしょう。 – Vityata

+0

ありがとうございます。私がしようとしているのは、特定の言葉が別の列に書かれているときに、列の中でニアミスまたはマイナーという単語を持つことです。特定の単語が適切か大文字か小文字かにかかわらず –

+0

@Seyiotuks - 正確には、大文字小文字を無視する場合は、すべての単語を「上」にして上位の値を比較することができます。 – Vityata

関連する問題