Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

String teilen bei mehreren Bedingungen

Forumthread: String teilen bei mehreren Bedingungen

String teilen bei mehreren Bedingungen
04.01.2005 10:52:24
Talcom
Hallo Zusammen,
wie kann ich einen String teilen, wenn eine von mehreren Bedingen zutrifft.
Ich habe einen String mit n-Zeichen. Dieser soll getrennt werden, wenn entweder ", " oder " WHERE" oder " ORDER BY" oder " FROM" in dem String
auftaucht. Anschließend soll im String weitergelesen werden, ob nicht noch
weitere Stücke erstellt werden können. Das Ergebnis soll in eine Tabelle
geschrieben werden, die ich später zur Ausgabe wieder auslesen kann.
Kann mir jemand einen Lösungsansatz in VBA geben? Mit instr kann ich leider immer nur einen Vergleichsparameter mitgeben.
Danke
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String teilen bei mehreren Bedingungen
04.01.2005 11:13:26
Josef
Hallo Talcom! (heist du wirklich so?)
Vom Prinzip her so:

Sub teileString()
Dim myStr As String
Dim strTmp As String
Dim arrTmp As Variant
Dim n As Integer
myStr = "das ist ein test, WHERE anywhere ORDER BY me FROM you"
strTmp = Replace(Replace(Replace(Replace(myStr, ",", ";"), _
"WHERE", ";"), "ORDER BY", ";"), "FROM", ";")
arrTmp = Split(strTmp, ";")
For n = 0 To UBound(arrTmp)
Cells(1, n + 1) = Trim(arrTmp(n))
Next
End Sub

Gruß Sepp
Anzeige
AW: String teilen bei mehreren Bedingungen
04.01.2005 11:49:49
Talcom
Hallo Sepp,
soweit so gut, klappt schon gut, jedoch darf der Text aus dem Ursprung nicht ersetzt werden. Du ersetzt leider "WHERE" durch ein ";". Dies sollte nicht passieren, da ich weiterhin alles aus dem Ursprungsstring in der Ausgabe haben muß.
Hast Du dazu noch eine Idee?
Danke
Gruß Talcom
Anzeige
AW: String teilen bei mehreren Bedingungen
u_
Hallo,

Sub string_teilen()
Dim strg As String, tmp As String, i As Integer, j As Integer, z As Integer
z = 2
j = 1
strg = Range("a1")
For i = i To Len(strg)
tmp = Right(strg, Len(strg) - i + 1)
If tmp Like ",*" _
Or tmp Like "WHERE*" _
Or tmp Like "ORDER BY*" _
Or tmp Like "FROM*" Then
Cells(z, 1) = Mid(strg, j, i - j)
z = z + 1
j = i
End If
Next i
Cells(z, 1) = Mid(strg, j, i - j)
End Sub

Gruß
Anzeige
Sorry falsch Interpretiert!;-( Nimm u_'s Lösung !
04.01.2005 12:04:05
Josef
Gruß Sepp
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige