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

Excel 2016 VBA für Profis

Textteile finden

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Beim Aufteilen von Text ist es nicht immer vorhersagbar, wie lang der gesuchte Teil ist. Daher können Sie mit den hier vorgestellten Funktionen bestimmte Elemente sowie deren Position im Text finden.

Transkript

Das Problem bei den "Left"-, "Right"- und "Mid"-Funktionen besteht ja darin, dass ich hier eine Zahl vorgegeben habe; ich musste also vorher per Augenschein das Wort anschauen und sagen, wie lange das erste Wort ist. Das kann es nicht sein, das muss flexibler werden, deshalb werde ich hier boshaft mal zwei neue Konstanten einfügen, die mich dazu zwingen, das flexibler zu machen. Die nenn ich einfach mal "Beispiel2="Willy Wichtig"" und entsprechend einen zweiten Dateinamen, der auch einfach nur mit der Zwei unterschieden wird. Das geht gleich schneller, wenn ich die wechseln will und der heißt ganz kurz "MeineDatenbank.accdb". Das kann ich also gleich auswechseln und deshalb wähle ich diese drei Varianten: "DasErsteWort, "DasLetzteWort" und "DateiendungErmitteln", vernünftig machen. Vernünftig heißt, zusammen mit einer Funktion; die wird "InString" oder "InStringReverse" heißen, die also innerhalb einer Zeichenkette etwas finden kann. Entsprechend nenne ich das "DasErsteWortBesser" und brauche dazu, nicht zwingend, aber um es netter zu machen, eine Hilfsvariable, nämlich eine Integer-Variable, um die Position des gesuchten Zeichens zu ermitteln. Es muss übrigens nicht ein Zeichen sein, die "InString"-Funktion, sondern Sie können das auch mit beliebig langen Zeichenketten-- die liefern die Position zurück, also "IntPos="-- "InString" schreibt sich so: "InStr", Klammer auf, und dann muss ich angeben, was ich untersuchen will. Ich fang mal mit dem normalen Beispiel an; Komma, und was ich darin suche, in einer Zeichenkette; nämlich ich suche ein Leerzeichen. Und da ich "InString" benutzt habe, krieg ich immer das erste zurück, auch wenn es mehrere gibt. Und jetzt kann ich mein "Debug.Print" machen, also die "Left"-Funktion weiterhin, es ist immer noch dieselbe Zeichenkette, aber jetzt weiß ich, wo das Leerzeichen ist. Das Leerzeichen findet sich an siebter Position, deswegen muss ich, wenn ich nur den Vornamen haben will, eins abziehen; ich will nur die ersten sechs Zeichen haben. Einmal speichern, einmal kompilieren und mit F5 sehen Sie unten, da wird der Lorenz ermittelt. Das ist jetzt nicht besonders originell, das konnte ich eben auch schon, aber ich kann ohne Bedenken hier das zweite Beispiel nehmen und mit F5 funktioniert das sofort auch. Das ist der eigentliche Gag dabei, dass ich die Zahl hier nicht vorgebe, sondern über die "InString"-Funktion das erste Auftauchen dieser Zeichenkette, kann auch mehr als ein Zeichen sein, gefunden wird, dann ziehe ich davon einen ab, dann bin ich in der Position vorher und habe also die Zahlen, nämlich die ersten sechs oder wie viel Zeichen auch immer. Für "DasLetzteWort" ist das so ähnlich, dass wir das direkt rüberkopieren können. Also, "DasLetzteWort", aber auch "Besser". Sie müssen nur aufpassen, dass Sie nie gleiche Prozedurnamen in demselben Modul haben. Und dort ändert sich die Funktion; die heißt dann "InStrReverse", also von hinten gucken. Das erste Auftauchen des Leerzeichens ist hier unerheblich, weil es nur eins gibt, aber es wird gleich wichtig werden und deshalb arbeite ich nicht mit der "Left"-Funktion, aber auch nicht mit der "Right"-Funktion, wie Sie jetzt vielleicht erwarten würden, denn "InStringReverse" guckt zwar von hinten, findet jetzt ein Leerzeichen, zählt aber dann die Anzahl von vorne. Ich kriege also eine Sieben zurück und nicht etwa das neuntletzte Zeichen, sondern das siebte von vorne. Also muss ich mit der "Mid"-Funktion arbeiten, hab jetzt hier in Gedanken die Sieben drinstehen, ich will aber ab dem achten Zeichen; muss also hier die +1 eingeben, sonst kriege ich vor dem Hölscher bzw. jetzt vor dem "Wichtig" ein Leerzeichen. Das fliegt wieder raus, das speichern, kompilieren und dann mit F5 sehen Sie, egal, welches ich von denen jetzt nutze, Sie müssen natürlich nur beide gleichzeitig anpacken, dann wird mit F5 sofort, aber nur wenn ich reinklicke, wird mit F5 der richtige Nachname ermittelt. Und dasselbe funktioniert auch für die Dateiendung und wird dort eigentlich auch am häufigsten eingesetzt, also "Sub DateiEndungBesser", auch da kann ich eigentlich schon oben kopieren, denn es ist im Grunde "DasLetzteWort". Der Unterschied besteht vor allem darin, dass ich erstens die richtige Konstante nehme. Nehmen wir ruhig erstmal den einfachen Dateinamen, der ist nämlich der kompliziertere von beiden. Ich suche nur kein Leerzeichen, sondern ich suche einen Punkt, und zwar den letzten Punkt. Das ist die offizielle Variante, die alte 8+3-Regel; 8 Zeichen Dateiname, 3 Zeichen Dateiendung gilt ja schon seit Jahrzehnten nicht mehr. Also, es zählt der letzte Punkt und auch wenn da vorher Punkte drin sind, völlig uninteressant, ich muss also von hinten gucken. Und wenn ich jetzt mit F5 das Ganze ausführe, wird sowohl ".xslx" erkannt als auch das längere ".accdb", jetzt mit F5. Es ist mir also egal, wie viel Zeichen dahinter stehen, die werden korrekt erkannt, wenn ich die mal vergleichen möchte.

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!