可以使用InStr功能查找第二个分隔符(“XADDR”在这种情况下)开始,并Mid函数提取你想要的部分:
Sub InstrDemo()
Dim s, delim1, delim2 As String
s = "ADDRjohnDOTdoeATfooDOTcomXADDRA646A10.FOO"
delim1 = "ADDR"
delim2 = "XADDR"
Dim pos As Integer
pos = InStr(s, delim2)
Dim part1, part2 As String
part1 = Mid(s, Len(delim1) + 1, pos - Len(delim1) - 1)
part2 = Mid(s, pos + Len(delim2))
MsgBox (part1 & vbCrLf & part2)
End Sub
输出:
(我用的Excel 2013,因为它是在当时更容易。)
这是更好地把分隔符作为这样的字符串,因为它避免了使用"magic numbers"。
或者你可以使用Split功能:
Sub SplitDemo()
Dim s, delim1, delim2 As String
s = "ADDRjohnDOTdoeATfooDOTcomXADDRA646A10.FOO"
delim1 = "ADDR"
delim2 = "XADDR"
s = Mid(s, Len(delim1) + 1)
Dim parts() As String
parts = Split(s, delim2)
' optional: check that the correct number of parts were found...
If UBound(parts) <> 1 Then
MsgBox ("Wrong number of parts.")
End If
MsgBox (parts(0) & vbCrLf & parts(1))
End Sub
这给输出与前法相同。
谢谢!一个微笑,在电子邮件地址字符串的末尾留下一个X. –
@DigitalLightcraft哎呀!我没有摆弄它。 –
非常好,谢谢,它很好地工作,并且还请求第二个选项:-D –