Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Excel 2016 VBA für Profis

Texte in Datenfelder umwandeln

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit der Split-Funktion lassen sich Zeichenketten anhand eines wählbaren Trennzeichens in ein Array umwandeln, so dass Sie auf die einzelnen Elemente viel einfacher zugreifen können.

Transkript

Auf den ersten Blick mögen Sie sich fragen, wie denn Zeichenketten und Arrays sinnvoll zusammen gehören. Das wird aber auf den zweiten Blick leicht erkennbar, wenn Sie dafür sorgen, dass jedes Element dieser Zeichenkette in einem Array in eigener Position landet. Ein Wort, zweites Wort und tatsächlich ist das dann das dritte Wort. Oder wenn Sie es weiter zerlegen, erstes Element, zweites Element, drittes Element, viertes Element. Mit Arrays, wenn sie denn automatisch zerlegt werden hier, ist es plötzlich viel viel einfacher auf Elemente zuzugreifen. Dazu werde ich den Willi Wichtig hier noch ein bisschen erweitern, der kriegt noch einen zweiten Vornamen. Und ich möchte das zweite Wort finden. Vielleicht fangen wir mit dem ersten Wort an. Da gibt es schon eine Prozedur, die heißt "Sub DasErsteWortBesser", deswegen muss ich die jetzt noch steigern, "DasErsteWortAmBesten" Da kann man drüber streiten, ob das diesen Aufwand wert ist, oder jetzt lieber der, der gleich kommt. Auf jeden Fall gibt es eine Funktion "split", die eine Zeichenkette zerlegen kann und in einen Array umwandelt. Deswegen brauche ich jetzt eine nicht etwa Array-Variable, sondern eine Variant-Variable, die nenne ich schon mal "Wörter As Variant". Das "As Variant" ist nicht zwingend nötig, wenn man es ganz weglässt, ist es auch ein "Variant"-Datentyp. Aber tatsächlich ist so deutlicher, dass ich es auch so meine. Und "varWörter" ist dann einfach gleich. "split", Klammer auf, die will zuerst eine Zeichenkette sehen, das ist meine Konstante, und dann nehme ich jetzt das "Beispiel2". Und nach dem Komma wird der Delimiter angegeben, also das Trennzeichen, können auch mehrere sein, in diesem Fall ein Leerzeichen. Und automatisch ist das Ergebnis ein Array. Ich werde das mal mit einem Breakpoint hier stoppen, das heißt die Prozedur stoppt an dieser Stelle. Ich muss hier ein bisschen Platz schaffen, und kann hier per Rechtsklick jetzt Überwachung hinzufügen, einfach mit "OK" bestätigen. Und wenn ich das jetzt, einmal speichern und Kompilier-checken natürlich, wenn ich das jetzt mit F5 starte, dann stoppt das hier, und Sie sehen jetzt, es ist ein Array und da sind in jedem dieser drei Elemente ein Wort drin, durch Leerzeichen getrennt und das letzte Wort auch, da wird in Gedanken sozusagen ein Leerzeichen dahinter gesetzt. Kann ich mit F5 weiterlaufen lassen, und dann lösche ich das wieder mit der Entfernen-Taste, Die Überwachungsausdrücke weg, den Breakpoint weg, und das Direktfenster wieder eingeschaltet. Es ist also jetzt ein Array, ein Variant-Datentyp kann intern auch ein Array sein. Und da ich vorher nicht weiß, wie viele Wörter kommen, kann ich kein echtes Array machen, sondern muss hier sozusagen die Hilfsvariante nehmen. Und da kann ich jetzt ganz banal drauf zugreifen. Das erste Wort ist also von "varWörter" das nullte Element. Und mit F5 sehen Sie jetzt, da ist Willi. Und das ist das Schöne, wenn Sie jetzt "DasZweiteWort" brauchen, ich mache erstmal eine Kopie davon, also "DasZweiteWort", das ist unschlagbar, das kriegen Sie weder mit "InStr", noch mit "InStrRev" hin. Dann können Sie in dem Array einfach drauf zugreifen. Willi Walter Wichtig wird jetzt also, einmal speichern, Kompilier-checken, den Walter liefern und wenn Sie sagen "Na, das ist aber viel Schreibarbeit", dann können Sie das tatsächlich, wenn Sie sicher sind, dass es ein zweites Wort gibt, maximal verkürzen, das heißt nicht in eine Variable hineinschreiben, und dieses ersetzt das anschließende Array. Ich kann also, statt das zu zerlegen in einer Array, in einem Variant-Datentyp, kann ich direkt das Ergebnis dieser Funktion so behandeln, als sei sie ein Array, das ist sie faktisch auch und nehme davon dann das erste Element, und das muss ich natürlich dann anders benennen. Also machen wir das einfach so, mit F5. Sie sehen, das funktioniert genauso. Das ist jetzt so kurz, dass ich davon abraten würde, das dauerhaft zu machen, wenn man sich nicht an diese Schreibweise gewöhnt hat. So eine Zwischenvariable ist schon lesefreundlicher, aber Sie sehen, das kann extrem knackig kurz sein. Was noch offen ist, ist das letzte Wort. Das ist nicht ganz so einfach, weil wir nicht wissen, wie viele Wörter es gibt. Also "DasLetzteWort" am besten. Das ist im Prinzip alles identisch, nur hier kann ich keine Zahl vorgeben, ich muss jemanden fragen, der was davon versteht. Da gibt es ein Pärchen von Funktionen, von denen man eigentlich immer nur eine braucht. Die eine heißt "lbound", "Lower Bound", die untere Grenze und die brauche ich nicht, denn die ist typischerweise auf Null. Es gibt Arrays, die nicht Null also untere Grenze haben, aber an der Stelle können Sie davon ausgehen. In diesem Fall brauche ich die "Upper Bound", die obere Grenze. Da muss ich natürlich sagen wovon, und schon deswegen brauche ich dann hier diese Zwischenvariable, also diese Konstruktion, "Upper Bound" vom Namen des Arrays sagt mir jetzt, wenn da drei Wörter drin sind, dass das eine Zwei ist. Null, Eins, Zwei. Und dann kriege ich von "varWörter" das zweite Element, nämlich das oberste, das letzte zurück. Also, mit F5, ohne dass ich wissen muss, wie viele Wörter enthalten sind, ich kann Ihnen noch einen Vornamen geben. Und werde trotzdem immer noch mit F5 den letzten Nachnamen eben bekommen. Also, eine geschickte Kombination, erstens mit dem "split". Und manchmal mit der "ubound"-Funktion sorgt dafür, dass Sie sehr sehr effektiv auf zerlegte Zeichenketten zurückgreifen können. "InStr, "InStrRev" ist nett und häufig auch ausreichend, aber wenn es an's Eingemachte geht sollten Sie besser die Split-Funktion benutzen, mit passendem Trennzeichen, und das einem Variant-Datentyp zuweisen, weil Sie es dann anschließend wie einen Array behandeln können.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!