Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

String splitten

String splitten
09.06.2004 14:30:35
Hans
Hallo,
Wie heute schon im Thread: https://www.herber.de/forum/messages/439209.html besprochen suche ich eine Möglichkeit einen String in mehrere Teile zu splitten. Folgendes Script arbeitet auch schon recht gut: https://www.herber.de/bbs/user/7258.txt
Dabei gillt allerdings die Voraussetzung, dass nur die Buchstaben A,B,C,D vorkommen. Nun habe ich das Problem, dass auch andere Buchstaben vorkommen können.
Wie kann man so etwas realisieren?
Gruß
Hans

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String splitten
09.06.2004 14:46:01
Holger
erkläre dann doch mal genau die Struktur des Strings: können auch 2 Buchstaben/Groß/-Kleinbuchstaben ... vorkommen.
Holger
AW: String splitten
09.06.2004 15:08:41
Hans
Also der String kann eine beliebige Länge haben, das habe ich schon durch die Abfrage der Stringlänge abgefangen. Das Format ist 1 Großbuchstabe mit oder ohne Zahlen. Hier einpaar Beispiele:
A123B3C455D345F2G
A1B2345C44567G
B234C3445656D345F
Es ist nun der Buchstabe mit den angehängten Zahlen raus zu filtern. Mein Ansatz ist dieser:
posA = InStr(1, Text, "A", 1)
If posA &gt 0 Then
Do While Mid(Text, von, 1) &lt&gt "B"
Das Problem ist dann halt, wenn "B" nicht vorkommt, dann kann er ja auch nicht bis B ausschneiden.
Hans
Anzeige
AW: String splitten
Begges
Hallo Hans,
ich würde das ganze durch zusätzliche Spalten in Excel ohne VBA lösen:
. mit FINDEN die Position der einzelnen Buchstaben bestimmen (fürs ABC halt 26x)
- mit TEIL die Zahlen rausziehen
Gruß
Begges
AW: String splitten
09.06.2004 15:38:25
Holger
Hallo Hans, ein hartes Stück Arbeit, aber so müssten alle Ausnahmen bedacht sein:

Sub StringSplitten()
Dim Laenge As Integer       'Deklaration der Laenge als Int
For z = 2 To 15     'Zeile 2 bis ...
Text = Cells(z, 1)  'Text aus Zeile z und Spalte 1
Laenge = Len(Text)      'Stringlänge = Laenge
Cells(z, 8) = Laenge    'Stringlänge ausgeben
If Len(Text) <> Laenge Then GoTo weiter      'Nach Laenge Zeichen in nachste Zeile
'Schleifen zur Texterkennung
von = 1
s = 3
Do While von <= Len(Text)
t = Mid(Text, von, 1) 'Die vier Ausgabefeld t=Text
von = von + 1
If von <= Len(Text) Then
Do While (Asc(Mid(Text, von, 1)) < 65 Or Asc(Mid(Text, von, 1)) > 96) And von <= Len(Text)
t = t & Mid(Text, von, 1)
von = von + 1
If von > Len(Text) Then Exit Do
Loop
End If
Cells(z, s) = t
s = s + 1
Loop
Next
weiter:
End Sub

Holger
PS: Du solltest alte Ergebnisse vorher löschen lassen
Anzeige
AW: String splitten
09.06.2004 15:54:47
Hans
Hallo Holger,
Vielen Dank für deine Mühen. Es ist jetzt genau so wie es sein soll. Hätte ich alleine wohl kaum hinbekommen. Dann können wir uns ja jetzt eine Pause gönnen und erstmal das schöne Wetter genießen.
Gruß
Hans
AW: String splitten
NE
Hallo Hans,
blick's zwar selber nich ganz, probier mal:

Sub x()
Dim s$, k%, x%, a$, b%, arr
s = "A123B3C455D345F2G"
For k = 1 To Len(s)
x = k + 1
b = 1
While IsNumeric(Mid(s, x, 1))
x = x + 1: b = b + 1
Wend
a = a & Mid(s, k, b) & " "
k = x - 1
Next
arr = Split(a)
Range(Cells(1, 1), Cells(1, UBound(arr) + 1)) = arr
End Sub

Gruss
Nancy
Anzeige
AW: String splitten
09.06.2004 15:51:00
Hans
Ich weiß nicht genau was er da macht, aber es führt nicht zu dem gewünschten Ergebnis.
Aber Danke trotzdem.
Gruß
Hans
AW: String splitten
NE
Hai Hans,
"Ich weiß nicht genau was er da macht"
Ich aaahaaaauuuuch nicht ;;-))
Denne eben so, wobei nu auch egal, nimm' halt Holger's ;-)
cu Nancy
--

Sub x()
Dim k%, x%, a$, b%, i&, arr
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
a = ""
For k = 1 To Len(Cells(i, 1).Value)
x = k + 1: b = 1
While IsNumeric(Mid(Cells(i, 1).Value, x, 1))
x = x + 1: b = b + 1
Wend
a = a & Mid(Cells(i, 1).Value, k, b) & " "
k = x - 1
Next
arr = Split(a)
Range(Cells(i, 2), Cells(i, UBound(arr) + 1)) = arr
Next
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige