Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

[VBA] Split ... erneut Split

[VBA] Split ... erneut Split
10.12.2018 16:57:53
Nils
Hallo VBA Experten,
ich hoffe es kann mir jemand helfen folgende Aufgabe zu lösen, ich weiß aktuell leider nicht wie:

Sub Test()
Dim Werte(0 To 1) As Variant, i As Integer, j As Integer
' Das ist meine Ausgangssituation:
Werte(0) = "1$2$3%4$5$6%7$8$9"
Werte(1) = "1$2$3%4$5$6%7$8$9"
' Mit einer Schleife Splitte ich mir die Einträge bei "%":
For i = 0 To UBound(Werte)
Werte(i) = Split(Werte(i), "%")
Next i
' Das erzeugt mir:
' Werte(0)(0) = "1$2$3"
' Werte(0)(1) = "4$5$6"
' Werte(0)(2) = "7$8$9"
' Werte(1)(0) = "1$2$3"
' Werte(1)(1) = "4$5$6"
' Werte(1)(2) = "7$8$9"
' Jetzt möchte ich die Funktion Split erneut anwenden, diesmal aber für "$":
For i = 0 To UBound(Werte)
For j = 0 To UBound(Werte(i), 1)
Werte(i)(j) = Split(Werte(i)(j), "$")   ' Laufzeitfehler '13': Typen unverträglich
Next j
Next i
' Als Ergebnis möchte ich folgendes haben:
' Werte(0)(0)(0) = "1"
' Werte(0)(0)(1) = "2"
' Werte(0)(0)(2) = "3"
' Werte(0)(1)(0) = "4"
' Werte(0)(1)(1) = "5"
' Werte(0)(1)(2) = "6"
' Werte(0)(2)(0) = "7"
' Werte(0)(2)(1) = "8"
' Werte(0)(2)(2) = "9"
' Werte(1)(0)(0) = "1"
' Werte(1)(0)(1) = "2"
' Werte(1)(0)(2) = "3"
' Werte(1)(1)(0) = "4"
' Werte(1)(1)(1) = "5"
' Werte(1)(1)(2) = "6"
' Werte(1)(2)(0) = "7"
' Werte(1)(2)(1) = "8"
' Werte(1)(2)(2) = "9"
' Wie kann ich das realisieren? Das muss doch gehen! Aber wie?
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [VBA] Split ... erneut Split
10.12.2018 17:29:00
Daniel
Hi
das Problem ist, dass du mit Werte(i) = Split(...) den Variablentyp von Werte(i) auf ein Text-Array festlegst.
dh dieser Variabeln kannst du dann nur noch Texte zuweisen, aber nicht mehr in ein weiteres Array wandeln.
Die Lösung wäre hier, dass du ein zusätzliches Variant-Array erstellst, die gesplitteten Text dem Variant-Array übergibst und dann dieses Variant-Array dem Werte(i) zuweist.
Damit bleibt Werte(i) ein Variant-Array und du kannst den Einzelwerten des Arrays im nächsten Schritt nicht mehr nur Texte, sondern auch wieder Arrays zuweisen:
Sub Test()
Dim Werte(0 To 1) As Variant, i As Integer, j As Integer
Dim x, y, z
' Das ist meine Ausgangssituation:
Werte(0) = "1$2$3%4$5$6%7$8$9"
Werte(1) = "1$2$3%4$5$6%7$8$9"
' Mit einer Schleife Splitte ich mir die Einträge bei "%":
For i = 0 To UBound(Werte)
x = Split(Werte(i), "%")
ReDim y(0 To UBound(x))
For z = 0 To UBound(x)
y(z) = x(z)
Next
Werte(i) = y
Next i
... und wie gewohnt weiter
gruß Daniel
Anzeige
AW: [VBA] Split ... erneut Split
10.12.2018 18:28:14
Nils
Hallo Daniel,
SUPER! Vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige