文字列に「、」(カンマ)が含まれているかどうかを調べたい。char-by-charを読み取る以外に他のオプションはありますか?
質問する
922839 次
5 に答える
419
Instr関数を使用します (古いバージョンの MSDN doc はこちらにあります) 。
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
pos で 15 を返します
見つからない場合は 0 を返します
Excel 数式でコンマを検索する必要がある場合は、=FIND(",";A1)
関数を使用できます。
Instr
大文字と小文字を区別しない文字列の位置を検索するために使用する場合は、Instr の 3 番目のパラメーターを使用し、それに const vbTextCompare
(または頑固な場合は 1 のみ)を指定することに注意してください。
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
値は 14 になります。
リンクした仕様に記載されているように、この場合は開始位置を指定する必要があることに注意してください。比較が指定されている場合は、開始引数が必要です。
于 2013-03-23T09:13:09.573 に答える
1
既存の Instr/InstrRev 関数を考えると、実際にはこれを行う必要はありませんが、EVALUATE を使用して VBA 内の Excel ワークシート関数の結果を返すと便利な場合があります。
Option Explicit
Public Sub test()
Debug.Print ContainsSubString("bc", "abc,d")
End Sub
Public Function ContainsSubString(ByVal substring As String, ByVal testString As String) As Boolean
'substring = string to test for; testString = string to search
ContainsSubString = Evaluate("=ISNUMBER(FIND(" & Chr$(34) & substring & Chr$(34) & ", " & Chr$(34) & testString & Chr$(34) & "))")
End Function
于 2021-01-03T08:46:55.300 に答える