2012-11-27 52 views
3

我需要用Visual Basic分隔字符串。拆分(「TEXT」,「+」或「 - 」,2)

缺點是我有更多的一個分隔符。

一個是"+",另一個是"-"

我需要的代碼來檢查字符串,如果"+"是一個字符串中,然後使用"+"

如果"-"是字符串中,然後使用"-"作爲分隔符。

我可以這樣做嗎?

例如:Split("TEXT" , "+" OR "-" ,2)

回答

3

最簡單的方式是更換了第二個字符,然後通過僅一個分裂:

Dim txt As String, updTxt As String 
Dim splitTxt() As String 

updTxt = Replace(txt, "-", "+") 

splitTxt = Split(updTxt, "+") 

或更復雜。下面分割後返回部分的集合。如果您需要,允許您將返回數據多加一些:

Dim txt As String, outerTxt As Variant, innerTxt As Variant 
Dim splitOuterTxt() As String 
Dim allData As New Collection 

    txt = "test + test - testing + ewfwefwef - fwefwefwf" 

    splitOuterTxt = Split(txt, "+") 

    For Each outerTxt In splitOuterTxt 

     For Each innerTxt In Split(outerTxt, "-") 

      allData.Add innerTxt 

     Next innerTxt 

    Next outerTxt 
+0

它有效。 :) 謝謝 – AnteseN

1

你描述的似乎很簡單。只要檢查文本是否包含+即可決定應使用哪個分隔符。

試試這個代碼:

dim separator as String 

separator = Iif(InStr(txt, "+") <> 0, "+", "-") 

splitResult = Split(txt, separator, 2) 

的代碼假定您要拆分的文本是在txt變量。

請注意,我沒有VBA在這裏,無法真正運行代碼。如果你有任何錯誤,請告訴我。