我有一個像這樣的字符串的excel列:ABC-1234-GLK-1234-10TH8E10-21 71-D 我需要給變量賦值GL-1234(子字符串在第二短跑和第四次之間)。我試圖VBA某些字符串的部分
x=Mid(string, 10, 8)
但問題是,並非所有的字符串的長度相同,但唯一不變的是,我想要的是子第2和第4個破折號之間。
任何想法?
我有一個像這樣的字符串的excel列:ABC-1234-GLK-1234-10TH8E10-21 71-D 我需要給變量賦值GL-1234(子字符串在第二短跑和第四次之間)。我試圖VBA某些字符串的部分
x=Mid(string, 10, 8)
但問題是,並非所有的字符串的長度相同,但唯一不變的是,我想要的是子第2和第4個破折號之間。
任何想法?
你可以嘗試以下方法,但我不認爲這是最優雅的或最簡單的解決方案:
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
這將返回第二個破折號和第4破折號,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
謝謝!!!!這正是我需要的! :) p.s. VBA中的新功能 – Maggie11
[如何獲取某個字符串的特定部分]的可能重複(http://stackoverflow.com/questions/2543225/how-to-get-a-particular-part-of-a-string) – puzzlepiece87