2013-07-30 3 views
1

InStr 함수를 사용하여 다른 문자열에서 특정 문자열을 찾으려고합니다.InStr에서 일치하는 문자열 다음에 오는 하위 문자열을 확인하는 방법

찾을 때이 문자열 바로 뒤에 오는 내용 (예 : 최종 사용자)을 확인하고이 부분을 반환하고 싶습니다. 지금까지 나는이 작성하는 관리 적이 :이 문자열이 검출되면 OK과 관련 셀을 표시

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

합니다.

아무에게 도와 줄 수 있습니까?

답변

1

InStr은 검색 할 문자열 ("최종 사용자 :")의 첫 번째 색인을 대상 문자열 (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" 
1

더 직접 :

Dim StrMain As String 
Dim StrSearch As String 
Dim LngPos As Long 

StrMain = "sample text End-user:kilroy" 
StrSearch = "End-user:" 
LngPos = InStr(StrMain, StrSearch) 

If LngPos > 0 Then MsgBox Right$(StrMain, Len(StrMain) - LngPos - Len(StrSearch) + 1) 
+0

를 ++ 매우 효율적인 오른쪽 $ (감사)에 대한 –

관련 문제