Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2013 VBA für Profis

Texte in Datenfelder umwandeln

LinkedIn Learning kostenlos und unverbindlich testen!

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 scheinen diese Funktionen für die Textverarbeitung und Datenfelder, Arrays, nichts miteinander zu tun zu haben. Aber Sie werden gleich feststellen, dass man mit der richtigen Technik diese Analyse sehr viel besser vornehmen kann. Ich schreibe mal eine neue Prozedur, die dieses Mal Sub DasZweiteWort heißt. Dafür wäre es ganz hilfreich, wenn wir auch ein zweites Wort haben. Hier zum Beispiel steckt ein zweites Wort drin. Im Normalfall wären Sie jetzt wahrscheinlich versucht, mit der InStr-Funktion dieses Leerzeichen zu finden, auf die restliche Zeichenkette nochmal die InStr-Funktion anzuwenden, um das zweite Leerzeichen zu finden, und schließlich aus der Differenz der beiden Positionen dieses "vom" zu ermitteln. Geht, macht aber keinen Spaß. Wenn Sie das mit der Split-Funktion machen, macht es plötzlich viel Spaß. Schaue Sie mal hier: Ich brauche zuerst einen Variant-Datentyp. Also: Dim varWoerter As Variant. Und zwar deswegen weil dieses varWoerter das Ergebnis einer Split-Funktion zugewiesen bekommt. Split ist eine Funktion, die eine Zeichenkette bekommt, also m_cstrDateiname und einen Begrenzer, Delimiter heißt das hier in den Parameterbezeichnungen. Der Begrenzer ist das Leerzeichen. Und Klammer wieder zu. Das bedeutet, dieser Dateiname wird nachher zerlegt in drei Elemente. Erstes Element, zweites Element, drittes Element. Und wenn ich das nochmal in Punkte aufteilen lasse, dann könnte ich das auch noch einzeln haben. Aber das reicht ja schon. varWoerter verhält sich jetzt wie ein Array. Und ich kann ganz einfach abfragen, Debug.Print, und hätte gern von varWoerter das zweite Element. Da es ein 0-basiertes, nämlich ein Array ist, ist also die 1 das 2. Element. Wenn ich das jetzt mit F5 laufen lasse, sehen Sie hier, ist korrekt das Wort "vom" erschienen. Sie sehen, mit drei Zeilen, und zur Not könnte man das in einer einzigen Zeile hinkriegen, aber in sauberer Weise in drei Zeilen kriegen Sie ein beliebiges Wort aus einem ganzen Satz heraus, indem Sie einfach sagen, dass Sie mit der Split-Funktion jetzt diesen Satz in seine Elemente, durch Leerzeichen getrennten Elemente, aufteilen möchten. Das scheint für den Anfang etwas schwieriger, wenn ich das letzte Wort sehen will. Das würde also in diesem Fall komplett diesen Bereich anzeigen. Also, wir können es auch beispielhaft hier mit der Endung machen. Also, das können wir erstmal kopieren, nicht DasZweite, sondern DasLetzteWort. Und ich werde den DateinameB untersuchen. Und den Punkt als Begrenzer, als Delimiter nutzen. Damit kriege ich, wenn ich das letzte Wort nehme, die Endung raus. Und Sie werden gleich sehen, dass das mit dem Dateinamen ohne das B, also mit dem Protokoll auch funktioniert. Bis dahin ist alles gleich. Das erste Wort wäre dieses. Wenn ich wüsste, dass es nur zwei Wörter gibt. Das ist in diesem Fall so, also "Test" und "accdb", dann würde auch die 1 funktionieren. Aber ich muss jetzt das letzte erfragen, und zwar nicht einfach vorher zählen, wie viele es gibt. Ich muss also von dem Array, was hier in varWörter drinsteckt, herauskriegen, wie viele Elemente das hat. Und dafür gibt es zwei Funktionen. Ich benutze die UBound, "upper bound", die obere Grenze von, und da muss ich das Array nochmal nennen, also von varWoerter, Klammer zu, noch eine Klammer zu. Das heißt, hier steckt drin die Anzahl der Elemente. Das bedeutet also, wenn ich hier mit UBound die Anzahl der Elemente ermittelt habe, nehme ich einfach die obere Grenze und habe dann das letzte Element. DasLetzteWort ist noch nicht der perfekte Prozedurname. Den gibt es hier nämlich schon. Also DasLetzteWortMitArray. Dann unterscheidet sich das. Ansonsten würden Sie hier unten DasLetzteWort noch als Prozedur finden und deswegen einen Kompilierfehler bekommen. Jetzt kann ich also hier hingehen, mit F5 das laufen lassen und würde dann finden, "accdb" ist das letzte Element hierin. Es gibt auch ein LBound, "lower bound", um das erste Element zu ermitteln oder die unterste Grenze. Das ist im Normalfall eine überflüssige Funktion, weil die untere Grenze immer 0 ist. Aber tatsächlich können Sie an der Stelle auch mit Arrays, die "von 5 to 7", also eine untere Grenze angeben, diese finden. Im Normalfall brauchen Sie nur UBound. Und wie Sie sehen, ist das sehr, sehr praktisch, um jetzt rauszukriegen, welches das letzte Wort, in diesem Fall nämlich die Dateiendung, ist. Und ohne InStrRev, werden Sie jetzt sehen, funktioniert das auch für den normalen Dateinamen. Also hier unten wieder weg. Und dann mit F5 hier die Endung gefunden, egal wie lang sie ist. Die Split-Funktion ist also optimal geeignet, um Textanalysen zu machen. Sie muss dann in einen Variant-Datentyp gespeichert werden. Und um den weiter analysieren zu können, wenn es denn sein muss, würden Sie bei Gelegenheit die UBound-, Upper-Bound-Funktion benutzen, um rauszukriegen, wie viele Elemente nun darin gelandet sind, denn es ist ja nicht vorher deklariert worden, sondern von der Split-Funktion geliefert.

Excel 2013 VBA für Profis

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

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!