Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: String zerschneiden in einzelne Variable

String zerschneiden in einzelne Variable
16.10.2024 05:32:33
Sebastian
Hallo Profis,

ich lese eine Textdatei in Excel ein, welche z.B folgende Zeilen enthält. Wie schaffe ich es es die Daten in einzelne Variablen zu lesen? Die Fett gedruckten Bereiche sind immer in jeder Zeile da, nur die Daten dazwischen sind eben anders.

Beispiel:
stadt-name=Berlin link=www.berlin.de Einwohner-Anzahl=3645000 2024 OK

Es sollen dann diese Daten einzeln in den VBA Variablen stehen:

stadt = Berlin
link = www.berlin.de
einwohner = 3645000
jahr = 2024
status = OK

Hat jemand eine Idee wie ich das so aufdröseln kann?

Vielen Dank schonmal für Eure Hilfe :-)
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String zerschneiden in einzelne Variable
16.10.2024 08:23:53
MCO
Moin!

Diese Sub macht was du willst:

Sub aufdröseln()


ReDim Var2_arr(99)
txt = "stadt-name=Berlin link=www.berlin.de Einwohner-Anzahl=3645000 2024 OK"

var1_arr = Split(txt, " ") 'nach leerzeichen trennen

For i = 0 To UBound(var1_arr)
If InStr(var1_arr(i), "=") > 0 Then 'nach = trennen, wenn vorhanden
Var2_arr(i) = Split(var1_arr(i), "=")(1)
Else
Var2_arr(i) = var1_arr(i)
End If
Next i
ReDim Preserve Var2_arr(i - 1)

Var_nam_arr = Array("stadt", "link", "einwohner", "jahr", "status") 'Variable festlegen

For i = 0 To UBound(Var2_arr)
Var2_arr(i) = Var_nam_arr(i) & " = " & Var2_arr(i) 'Variable zuordnen
txt_final = txt_final & Var2_arr(i) & Chr(10) 'Text Datensatz zusammenstellen
Next i

MsgBox txt_final
End Sub


Gruß, MCO
Anzeige
AW: String zerschneiden in einzelne Variable
16.10.2024 09:37:10
Alwin Weisangler
Hallo Sebastian,

in Variable "Ausgabe" aufgeteilt sollte es so ausreichen:



Sub Aufteilen()
Dim Ausgabe, str$: str = "stadt-name=Berlin link=www.berlin.de Einwohner-Anzahl=3645000 2024 OK "
str = Replace(str, " ", "###")
str = Left(str, Len(str) - 3)
Ausgabe = Split(Trim(Replace(Replace(Replace(str, "stadt-name=", "Stadt = "), "link=", "Link = "), "Einwohner-Anzahl=", "Einwohner = ")), "###")
Ausgabe(3) = "Jahr = " & Ausgabe(3)
Ausgabe(4) = "Status = " & Ausgabe(4)
str = ""
End Sub

Diese kannst du dann wo auch immer hin übergeben.

Gruß Uwe
Anzeige
AW: String zerschneiden in einzelne Variable
16.10.2024 11:40:18
daniel
HI

noch ne variante.

sollte der String immer gleich aufgebaut sein (Inhalt und Reihenfolge), gehts so recht einfach:
a = "stadt-name=Berlin link=www.berlin.de Einwohner-Anzahl=3645000 2024 OK"

a = replace(a, "=", " ")
b = split(a, " ")
stadt = b(1)
link = b(3)
Einwohner = b(5)
Jahr = b(6)
Status = b(7)


wenn es sein kann, dass die Informationen nicht immer in der gleichen Reihenfolge stehen oder Informationen auch ganz fehlen können, dann so mit Suche des jeweiligen kenners:
Achtung: i muss als Variant deklariert werden, damit des den Fehlerwert aufnehmen kann, falls der Suchwert nicht gefunden wird.
a = "stadt-name=Berlin link=www.berlin.de Einwohner-Anzahl=3645000 2024 OK"

a = replace(a, "=", " ")
b = split(a, " ")

stadt = ""
i = application.Match("stadt-name", b, 0)
if isnumeric(i) then stadt = b(i + 1)

link = ""
i = application.Match("link", b, 0)
if isnumeric(i) then link = b(i + 1)

Einwohner = 0
i = application.Match("Einwohner-Anzahl", b, 0)
if isnumeric(i) then Einwohner = b(i + 1)

Jahr = b(ubound(b) - 1)
Status = b(ubound(b))


Anzeige
Du könntest auch...
16.10.2024 12:19:52
Case
Moin Sebastian, :-)

... alles in Power Query lösen (falls VBA nur eine Notnagel für dich ist): ;-)
https://www.herber.de/bbs/user/172918.xlsx

Man kann auch das einlesen der Textdatei gleich in PQ erledigen und dann aufteilen. ;-)

Servus
Case
Anzeige
AW: String zerschneiden in einzelne Variable
16.10.2024 09:40:13
Sebastian
Alle Lösungen funktionieren - Vielen Dank an euch!
AW: String zerschneiden in einzelne Variable
16.10.2024 08:20:14
Sebastian
Hallo Sigi,

vielen Dank :-) das ist die Lösung für die Tabelle selbst - aber wie kann ich das in VBA realisieren?

Außerdem muss ich 2024 und das OK auch noch trennen :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige