2017-12-14 12 views
0

Derzeit verwenden Ich versuche, eine zu lesen, meine Datei brechen in eine 2-Säule Tabelle verschiedene Trennzeichen verwendet, zum Beispiel:VBA 2D-Array Split mehrere Begrenzer

-5 Name1, +7 Octopus, -6 Name22, +5 Horse, -7 Name100, +3 Owl 

Mein Endergebnis 2 Spaltentabelle sein sollte wie:

Name1 Octopus
Name22 Pferd
Name100 Owl

Bisher mein Code ist ziemlich simpel:

Sub SplitText() 

Dim TextString As String, WArray() As String, Counter As Integer, Strng As String 

    TextSring = Range("A1").Value 
    WArray() = Split(TextString, ",") 

    For Counter = LBound(WArray) To UBound(WArray) 

     Strng = WArray(Counter) 
     Cells(Counter + 2, 1).Value = Trim(Strng) 

    NextCounter 

End Sub 

Ihre Hilfe ist sehr notwendig, Dank :)

Antwort

0

Dieser Code unten mit der Zeichenfolge arbeiten Sie bereitgestellt haben. Ich hoffe, dass es mit deinen echten Daten in Ordnung sein wird. Siehe Kommentare für Erklärungen.

Sub SplitText() 
Dim s As String 
Dim v 
Dim i As Long, j As Long 


s = "-5 Name1, +7 Octopus, -6 Name22, +5 Horse, -7 Name100, +3 Owl" 

'let's remove space, pluses and minuses 
s = Replace(Replace(Replace(s, " ", ""), "+", ""), "-", "") 

'and cut by commas 
v = Split(s, ",") 

For i = 0 To UBound(v) 
    If InStr(v(i), "Name") Then 
     'remove numbers before names 
     v(i) = "Name" & Split(v(i), "Name")(1) 
    Else 
     For j = 48 To 57 
      'remove figures in animals 
      v(i) = Replace(v(i), ChrW(j), "") 
     Next j 
    End If 
Next i 

For i = 0 To UBound(v) Step 2 
    'see the results 
    Debug.Print v(i) & " " & v(i + 1) 
Next i 
End Sub