我試圖使用功能InStr
在另一個字符串中查找特定的字符串。如何檢查跟隨在InStr匹配的字符串後面的子字符串
當我找到它時,我想查看該字符串後面的內容(例如最終用戶)並返回此部分。到目前爲止,我已經成功地寫:
If InStr(LCase(analysis), "End-user:") > 1 Then Range("AE" & i).Value = "OK"
一旦此字符串已檢測到這標誌着相關細胞作爲OK
。
任何人都可以幫助我嗎?
我試圖使用功能InStr
在另一個字符串中查找特定的字符串。如何檢查跟隨在InStr匹配的字符串後面的子字符串
當我找到它時,我想查看該字符串後面的內容(例如最終用戶)並返回此部分。到目前爲止,我已經成功地寫:
If InStr(LCase(analysis), "End-user:") > 1 Then Range("AE" & i).Value = "OK"
一旦此字符串已檢測到這標誌着相關細胞作爲OK
。
任何人都可以幫助我嗎?
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"
更直接地說:
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)
++的非常有效的右$(感謝) –