Hallo liebes Forum.
leider stehe ich derzeit aufm Schlauch. Ich habe in einer Spalte mehrere Zeilen untereinander, wo ich aus einer Zeichenkette einzelnen Frangmente auslesen möchte, die durch ein Komma getrennt sind. Den letzten Teil der Zeichenkette möchte ich nicht weiter bearbeiten, sondern nur bis zum letzten Komma:
Muster in der jeweiligen Zeile: "ABC12, ABB43, AG44, irgendein Text"
Für diesen Fall möchte ich nur einzeln bis zum letzten Komma die Zeichenkette aufsplitten, so dass folgende "Fragmente" enstehen:
ABC12
ABB43
AG44
Diese "Fragmente möchte ich dann in einer Spalte eines neuen Tabellenblatt ausgeben lassen.
Das ganze bezieht sich nicht nur auf eine Zeile, sondern auf mehrere.
Ich habe mir was überlegt und festgestellt, dass im Direktfenster alle Fragmente, die ich mir wünsche, erscheinen. Allerdings klappt die Ausgabe im neuen Tabelleblatt nicht, da werden viel weniger Fragmente ausgegeben. Vermutlich wird irgendwas ersetzt/überschrieben.
Für Tipps und Anregungen bin ich sehr dankbar.
Anbei der Code:
Sub SplitCommaSeparatedString()
Dim myString As String
Dim myArray() As String
Dim i As Integer
Dim j As Integer
Dim zeile As Long, spalte As Long
For j = 1 To 19
'Zeilen und Spalte der zu verarbeitenden Zelle festlegen
zeile = j + 1 'Beispiel: mit Zeile 2 beginnend
spalte = 11 'Beispiel: Spalte 11
'Den Wert der Zellen auslesen
myString = Cells(zeile, spalte).Value
Debug.Print myString
'Den String mit Komma als Trennzeichen aufteilen
myArray = Split(myString, ",")
'Ausgabe des Arrays in das Direktfenster (Optional)
For i = LBound(myArray) To UBound(myArray) - 1 'das letzte Arrayelement nicht nehmen
Debug.Print myArray(i)
'Debug.Print "Äußere Schleife: " & j & ", Innere Schleife: " & i
Worksheets("Tabelle2").Cells(zeile + i, 10).Value = myArray(i)
Next i
Next j
End Sub
|