Hallo an alle.
Habe ein Problem: Ich habe folgende Zeile im Quelltext gegeben:
TEST TEST - Hund Katze Maus Hahn. 3
Ich möchte jetzt "Hund Katze Maus Hahn." einlesen den Rest aber nicht.
Hab es so versucht: Trim(Mid(arrZeilen(_), 12, ___)
Durch die "12" beginnt es vor "Hund" einzulesen. Ich müsste das jetzt aber auch nach hinten begrenzen. Würde die Anzahl der Wörter oder der Punkt immer gleich sein wäre es kein Problem. Es kann aber z.B. auch sein, dass ich folgendes als Grundlage habe:
TEST TEST - Hund Maus Fisch 3
Hier möchte ich "Hund Maus Fisch" einlesen.
Somit kann ich nicht sagen, dass der Text den ich einlesen möchte immer die gleiche Länge hat.
Habe auch versucht "rtim" zu verwenden und damit die Zahl die am Ende steht und die ich weghaben möchte zu entfernen, hat aber leider auch nicht funktioniert.
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und jemand kann mir weiterhelfen. Vielen Dank jedenfalls im Voraus.
Grüße,
Tom
solange nach hinten kein(e) eindeutige(n) Zeichen vorkomm(t/en) dürfte es schwierig werden, der Punkt wäre eine Möglichkeit, aber wenn er nicht immer vorkommt müsste man evtl solange den String durchlaufen bis Zeichen auflaufen die Nicht Buchstaben oder leerzeichen sind.
Im Prinzip ist es immer so aufgebaut:
Mannschaftsname/Sponsorname und dann folgen die Tore der jeweilige Mannschaft (also eine Zahl).
Wenn man also sagen könnte "auslesen bis zur ersten Zahl" sollte das gut gehen. Einzige Problemstelle wäre dann, wenn im Mannschaftsname/Sponsorname auch Zahlen vorkommen (ist aber selten bis nie der Fall).
Ein anderer Ansatz wäre, dass man das Ganze von hinten rechnet.
Da die Anzahl der Tore in der Regel einstellig ist und immer am Ende der Zeile vorkommt könnte man sagen: "einfach die letzten zwei Zeichen (Leerzeichen + Zahl) vom String immer weglassen". Hier ist dann das Problem, bei zweistelligen Ergebnissen.
Leider weiß ich nicht mit welchen Funktionen ich dies anwenden kann...
Hallo,
versuch mal ...
Sub testen()
Dim strTest As String
Dim strErg As String
strTest = "TEST TEST - Hund Katze Maus Hahn 4"
strErg = Replace(Replace(Replace(strTest, "TEST TEST - ", ""), Right(strTest, 2), ""), ". ", "")
Debug.Print strErg
End Sub
Vielen Dank für die schnelle Hilfe!!!
Funktioniert jetzt.
Danke nochmals,
Tom
Wobei mich noch interessieren würde, woher denn die Werte stammen.
ZitatMannschaftsname/Sponsorname und dann folgen die Tore der jeweilige Mannschaft
diese Daten hast du hoffentlich NICHT in ein und der selben Spalte einer Tabelle stehen.
In dem Fall wäre ich schwerst geneigt dich darauf hinzuweisen den Tabellenaufbau von Grund auf zu erneuern und den Normalisierungsregeln anzupassen.