我有一个包含字符串的Excel列,像这样:ABC-1234-GLK-1234-10TH8E10-2171-D
我需要将值GL-1234赋给一个变量(即第2个短划线和第4个短划线之间的子字符串)。我尝试了:
x=Mid(string, 10, 8)
但问题在于并非所有字符串的长度都相同,然而我想要的子字符串是在第2个和第4个短划线之间的唯一恒定部分。
有什么想法吗?
将字符串拆分并提取所需内容:
Dim dataSplit() As String
Dim dataString As String
dataSplit = Split(Sheet1.Range("C14").Value2, "-")
dataString = dataSplit(2) & "-" & dataSplit(3)
x = ""
p1 = InStr(1, string, "-")
If p1 <> 0 Then
p2 = InStr(1 + p1, string, "-")
If p2 <> 0 Then
p3 = InStr(1 + p2, string, "-")
If p3 <> 0 Then
p4 = InStr(1 + p3, string, "-")
If p4 <> 0 Then
x = Mid(string, p2 + 1, p4 - p2 - 1)
End If
End If
End If
End If
这将返回第二个破折号和第四个破折号,B1是字符串:ABC-1234-GLK-1234
=MID(B1,FIND("-",B1,FIND("-",B1)+1),FIND("-",B1,FIND("-",B1,FIND("-",B1,FIND("-",B1)+1)+1)+1) - FIND("-",B1,FIND("-",B1)+1))
InStr
函数来查找横杠的位置。 - Jacob