1

関数を使用してInStr、別の文字列で特定の文字列を見つけようとしています。

見つかったら、この文字列の直後にあるもの (たとえばEnd-user ) を確認し、この部分を返します。これまでのところ、私はこれを書くことができました:

If InStr(LCase(analysis), "End-user:") > 1 Then Range("AE" & i).Value = "OK"

OKこの文字列が検出されると、関連するセルをマークします。

誰か助けてくれませんか?

4

2 に答える 2

1

InStr検索する文字列 ("End-user:") の最初のインデックスをターゲット文字列 ( Analysis) に返します。必要な部分文字列を計算するには、長さと一緒にそれを取る必要があります。またLCase、ある部分では使用していて、他の部分では使用していないことに注意してください (検索する文字列が大文字を含む限り、決して見つからないことを引き起こします)。あなたが望むものを提供するコード:

Dim analysis As String : analysis = "End-user: anyone"
Dim stringToSearch as String : stringToSearch = "End-user:"
Dim finalBit As String
Dim startIndex As Integer: startIndex = InStr(LCase(analysis), LCase(stringToSearch))
If (startIndex > 0 And InStr(LCase(analysis), LCase(stringToSearch)) < Len(analysis)) Then
  Dim endIndex As Integer: endIndex = startIndex + Len(stringToSearch)
  finalBit = Mid(analysis, endIndex, Len(analysis) - endIndex + 1)
End If

'finalBit -> " anyone"
于 2013-07-30T09:49:47.703 に答える