2013-07-30 41 views
1

我試圖使用功能InStr在另一個字符串中查找特定的字符串。如何檢查跟隨在InStr匹配的字符串後面的子字符串

當我找到它時,我想查看該字符串後面的內容(例如最終用戶)並返回此部分。到目前爲止,我已經成功地寫:

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

一旦此字符串已檢測到這標誌着相關細胞作爲OK

任何人都可以幫助我嗎?

回答

1

InStr將要搜索的字符串的第一個索引(「最終用戶:」)返回到目標字符串(Analysis)。你應該把它和長度一起計算出你想要的子串。另外請記住,您在一個部分中使用了LCase,但是在另一部分中卻沒有使用該字符(這引發了只要包含大寫字母就不會找到要搜索的字符串)。 A碼提供你想要什麼:

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

++的非常有效的右$(感謝) –

相關問題