Finden letzten Raum in string
Will ich finde das Letzte Leerzeichen in einem string. Der Zweck ist die split ein name in drei Teile. Ich kann die ersten Namen einfach genug, aber die letzten beiden sind nicht so einfach.
fullName = "Giger,San Paulo Fisher"
first = Left(fullName, InStr(1, ",", fullName, vbTextCompare))
last = Mid(fullName,InStr(1, ",", fullName, vbTextCompare),[POSITION OF LAST SPACE]-InStr(1, ",", fullName, vbTextCompare))
middle = Right(fullName,Len(fullName)-[POSITION OF LAST SPACE])
Vielen Dank im Voraus!
Die Verwendung
InstrRev()
(nach dem letzten vorkommen) oder Split()
könnte ein nützlicher Gesamtkonzept.InformationsquelleAutor steventnorris | 2014-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Split-Funktion ohne VBA. Dieses erhalten Sie "Giger,San","Paulo","und "Fischer". Es sollte relativ leicht zu split-out-the last name " und "Vorname" nach dem Komma. Und Sie don ' T müssen sich sorgen darüber, wie viele Namen enthalten sind oder wie lang Sie sind.
Wenn Sie wollen einfach nur den index des letzten Raums. Entweder werden diese tun. Beachten Sie, dass der zweite mit dem obigen code zu finden, der array von strings, aus der Split-Funktion.
Stimmen Sie haben keine Antwort auf "die Frage". Hinzugefügt einige Informationen über wie finden Sie die "letzten Raum in einen string". Sehr ähnlich zu verkaufen.
InformationsquelleAutor APrough
Gibt es ein ziemlich gut bekannter trick (siehe zum Beispiel Excel: Letzte Zeichen/Zeichenfolge entsprechen, in einer Zeichenfolge - ich passte meine Antwort aus der letzten version die man dort akzeptiert wird): Sie ersetzen einen Raum mit vielen Räumen, dann nehmen Sie die letzten N Zeichen, und trimmen Sie:
Können Sie die Anzahl (99 in diesem Fall) so groß, wie Sie brauchen - länger als der längste Wort, das Sie sich vorstellen.
Hier ist, wie es funktioniert. Stellen Sie sich Ihr original-string (name):
Nun ersetzen Sie jedes Leerzeichen mit 8 Räume (halten Sie es überschaubar - Formel verwendet 99, gleiche Prinzip):
Nehmen Sie jetzt die letzten 8 Zeichen:
(Ich bin mit Unterstreichung zu zeigen, der Raum)
Nun trim (entfernen Sie führende und nachfolgende Leerzeichen):
ist die Ergebnis Sie wurden nach.
Können Sie die anderen Saiten auch - aber da Sie aufgeteilt werden soll, auf einem Raum, es ist die natürlichste string zu verwenden.
Wenn Sie möchten, tun Sie dies in VBA, können Sie einfach
Übrigens - Vorsicht vor der Annahme, dass das Ding nach dem letzten Platz liegt die ganze last name. Es gibt viele Namen (mehr in einigen Ländern als andere), die aus mehreren Wörtern, getrennt durch Leerzeichen.
InformationsquelleAutor Floris
seine nur können Sie split-Befehl für trennen Sie die Namen mit Leerzeichen
Beispiel:
xyz = Split(tStr, " ")
InformationsquelleAutor Jimit Rupani