Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???

Forumthread: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???

Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 10:36:48
daniel
Hallo

gibt es eigentlich die neue Excelfunktion TEXTTEILEN bzw TEXTSPLIT auch in VBA?
ich kann in der WorksheetFunction-Auflistung nichts passendes finden.

die Klassische Split-Funktion von VBA kann ja nur eindimensionale Arrays erzeugen, das Textsplit auch zweidimensionale.

ja, der Workaround über Evaluate funktioniert, ist aber unschön, wenn man Variablen hat, von daher wäre eine direkte Nutzung in VBA (wie sie ja für andere Excelfunktionen möglich ist) wünschenwert.

Habe ich was übersehen?
Wurde die Funktion "vergessen" oder gibt es einen Grund warum diese Funktion nicht nach VBA übernommen wurde?

Gruß Daniel
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 10:46:07
Oberschlumpf
Hi,

in VBA gibt es schon - seit Jahren! - die SPLIT-Funktion.

Ciao
Thorsten
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 21:29:16
Uduuh
Hallo,
wahrscheinlich vergessen. TEXTJOIN gibt es ja.

die Klassische Split-Funktion von VBA kann ja nur eindimensionale Arrays erzeugen
Stimmt. Aber man kann es ja einfach transponieren.
a = Application.Transpose(Split("a-b-c-d", "-")) ergibt a(1 to 4, 1 to 1)

Gruß aus'm Pott
Udo
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 21:39:16
daniel
Ja, das ist doch auch nur pseudo 2-d

TextSplit kann aus "a.b.c;d.e f;g.h.i" ein echtes 2dArray machen:

a b c
d e f
g h i

Gruß Daniel
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 10:57:00
daniel
ja kenn ich
aber meines Wissen nach kann die nur eindimensionale Arrays erzeugen während man bei Textsplit zweidimensionale erzeugen kann und es auch mehrere verschiedene Trennzeichen zulässt.
Textsplit ist also deutlich funktionaler als das klassische Split.
Habe ich mich getäuscht und das klassische Split kann genauso viel wie das Textsplit? aus der Hilfe geht das nicht hervor, aber vielleicht weißt du mehr als die Hilfe.

Gruß Daniel
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 12:01:05
daniel
noch offen.
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 12:48:54
Oberschlumpf
Hi,

ok, auch wenn ich nich Unrecht hatte, war ich vllt doch ein wenig zu schnell ;-)
Ich hab mir die von dir genannten Excel-Funktionen nicht genauer angeschaut - daher wusst ich nich, dass die auch mehrdimensional spliten können.

Und dein Wissen bzgl VBA-Split passt schon = geht nur 1dimensional.
Nun denn, Workaround, vielleicht = verschachtel SPLIT in VBA doch einfach so oft, wie du es benötigst...oder, anderer Workaraond = schreib in VBA mit .FormulaLocal doch die TEXTTEILEN-Formel in die Zellen.

Ciao
Thorsten
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 13:29:32
daniel
ich hatte ja in meiner Eingangsfrage geschrieben:

"die Klassische Split-Funktion von VBA kann ja nur eindimensionale Arrays erzeugen, das Textsplit auch zweidimensionale."

ich muss jetzt davon ausgehen, dass du noch nicht mal meinen Beitrag gelesen hast (der ist nicht besonders lang ist).
bist du immer so vorschnell?

wo ich dich grad an der Strippe habe, könntet du mir hier nochmal Rückmeldung geben (aber bitte nochmal vorher vollständig lesen)
https://www.herber.de/forum/messages/1951431.html
Gruß Daniel
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 14:16:14
Oberschlumpf
jo, daniel...du hast recht, usw...seufz
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 15:35:40
daniel
naja, das meine ich doch.
Danke für deine ehrliche Rückmeldung.
warum musst du seufzen?
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 15:46:25
Oberschlumpf
...weil ich anstelle von "usw" auch hätte schreiben können "und ich hab ruhe"...aber war wohl doch Irrtum...und auch jetzt wirst du wahrsch wieder gegenargumentieren....aber ok...dann machen wir halt weiter
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 15:55:14
daniel
Schöner wäre es, wenn du dich meiner Argumente annehmen würdest und mir dann entweder recht gibst (und das ehrlich, weil du tatsächlich überzeugt bist), oder du teilst mir mit, wo ich deiner Meinung nach falsch liege.
So sollte eigentlich eine vernünftige Diskussion laufen.
ich bin nicht so der "BASTA - ich hab recht du du hältst das Maul" - Typ, sondern mag die gepflegte Diskussion.
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 16:04:18
Oberschlumpf
ich gebe mich nun doch schon geschlagen...habe den Faden verloren
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 16:39:49
daniel
da kann ich dir helfen.
es ging darum, warum du dich geschlagen gibst:
a) du hast meine Argumente gelesen (hoffentlich) und sie haben dich überzeugt
b) du bist nicht überzeugt, gibst aber auf weil du deine Ruhe haben willst.
im Fall a) kannst du das aber "erhobenen Hauptes" tun und brauchst nicht zu seufzen.
Daher erkenne ich eine kleine Widersprüchlichkeit in deiner Antwort.

ja, das war so im großen und ganzen das Thema, worum es ging. Faden wieder da?
Anzeige
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 17:11:21
Oberschlumpf
jep...b) passt
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 18:13:40
daniel
du bist also von deinen eigenen Argumenten nicht so überzeugt, dass du glaubst sie können auch mich überzeugen?
komisch, warum so wenig Selbstbewusstsein?
AW: Funktion TEXTTEILEN / TEXTSPILT in VBA fehlt ???
31.10.2023 20:51:11
Oberschlumpf
das haste falsch verstanden...oder dein b) hast du nich eindeutig formuliert...ich hatte dein b) so verstanden, dass ich von deinen argumenten nich so überzeugt bin...usw

dies war nun mein letzter kommentar in diesem beitrag

ich wünsch dir, dass andere noch dazu beitragen können, deine erst-frage zu beantworten
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Funktion TEXTTEILEN und TEXTSPLIT in VBA nutzen


Schritt-für-Schritt-Anleitung

  1. Verwendung der SPLIT-Funktion: In VBA kannst du die klassische Split-Funktion verwenden, um einen Text in ein eindimensionales Array zu teilen. Hier ein einfaches Beispiel:

    Dim result As Variant
    result = Split("a-b-c-d", "-") ' Ergebnis: Array mit Werten "a", "b", "c", "d"
  2. Transponieren für zweidimensionale Arrays: Wenn du ein 2D-Array benötigst, kannst du die Transpose-Methode verwenden:

    Dim a As Variant
    a = Application.Transpose(Split("a-b-c-d", "-")) ' Ergebnis: 2D-Array
  3. Nutzung von TEXTTEILEN in Excel: Möchtest du die TEXTTEILEN-Funktion in einer Excel-Formel verwenden, kannst du dies so machen:

    =TEXTTEILEN(A1; ","; 1) ' Teilt den Text in A1 bei jedem Komma
  4. Eingabe von TEXTTEILEN in VBA: Um die TEXTTEILEN-Formel in eine Zelle über VBA zu schreiben, benutze den folgenden Code:

    Range("B1").FormulaLocal = "=TEXTTEILEN(A1; "" ""; 1)"

Häufige Fehler und Lösungen

  • Fehler: "Funktion nicht definiert": Stelle sicher, dass du die richtige Excel-Version verwendest, die die Funktion TEXTTEILEN unterstützt. Diese Funktion ist in Excel 365 verfügbar.

  • Fehler: Falsches Ergebnis bei Split: Wenn das Ergebnis nicht wie erwartet ist, überprüfe, ob die Trennzeichen korrekt angegeben sind. Beispielsweise verwendet Split("a.b.c;d.e f;g.h.i", ".") nur den Punkt als Trennzeichen.


Alternative Methoden

  • VBA TextSplit: Eine alternative Methode wäre die Verwendung einer benutzerdefinierten Funktion in VBA, die die TEXTTEILEN-Logik nachahmt. Hier ein Beispiel:

    Function TextSplit(inputText As String, delimiters As String) As Variant
      Dim result As Variant
      result = Split(inputText, delimiters)
      TextSplit = result
    End Function
  • Verwendung von Formeln: Du kannst auch die Excel-Funktion TEXTVERKETTEN oder TEXTJOIN nutzen, um mehrere Werte zusammenzuführen.


Praktische Beispiele

  • Beispiel für SPLIT in VBA:

    Dim myArray As Variant
    myArray = Split("Hallo;Welt;VBA", ";") ' Ergebnis: Array mit 3 Elementen
  • Beispiel für die Verwendung von TEXTTEILEN:

    =TEXTTEILEN("Apfel,Banane,Kirsche"; ","; 2) ' Gibt "Banane" zurück

Tipps für Profis

  • Nutze Application.Transpose in Kombination mit Split, um komplexe Datenstrukturen zu erstellen.
  • Achte darauf, die Excel-Version regelmäßig zu aktualisieren, um neue Funktionen wie TEXTTEILEN nutzen zu können.
  • Verwende die Debug.Print-Anweisung in VBA, um Ergebnisse schnell zu überprüfen.

FAQ: Häufige Fragen

1. Kann ich die TEXTTEILEN-Funktion in älteren Excel-Versionen verwenden? Leider ist die TEXTTEILEN-Funktion nur in Excel 365 verfügbar.

2. Wie kann ich mehrere Trennzeichen in VBA verwenden? Du kannst die Split-Funktion mehrmals hintereinander verwenden oder eine benutzerdefinierte Funktion schreiben, um mehrere Trennzeichen zu unterstützen.

3. Gibt es eine Möglichkeit, die SPLIT-Funktion in VBA zu erweitern? Ja, indem du eine benutzerdefinierte Funktion schreibst, die die SPLIT-Logik anpasst und erweitert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige