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 回答
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)
于 2015-09-07T13:36:21.293 回答