2012-11-27 2 views
3

Je dois séparer une chaîne avec Visual Basic.Split ("TEXT", "+" OU "-", 2)

L'inconvénient est que j'ai plus d'un séparateur. L'un est "+" et l'autre "-".

J'ai besoin du code pour vérifier la chaîne si "+" est celui de la chaîne puis utilisez "+"

si "-" est dans la chaîne puis utilisez "-" comme séparateur.

Puis-je faire ceci?

Par exemple: Split("TEXT" , "+" OR "-" ,2)

Répondre

3

plus simple est de remplacer le deuxième caractère, puis divisé par une seule:

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

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

splitTxt = Split(updTxt, "+") 

ou plus complexe. Le ci-dessous renvoie une collection des parties après avoir été divisé. Vous permet de cusomize les données de retour un peu plus si vous avez besoin:

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

Cela fonctionne. :) Je vous remercie – AnteseN

1

Ce que vous décrivez semble assez simple. Vérifiez simplement si le texte contient un + pour décider quel séparateur vous devez utiliser.

Essayez ce code:

dim separator as String 

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

splitResult = Split(txt, separator, 2) 

Le code suppose que le texte que vous voulez diviser est dans la variable txt.

Veuillez noter que je n'ai pas de VBA ici et que je n'ai pas pu exécuter le code. Si vous avez une erreur, faites le moi savoir.