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

Bestimmten bereich aus einem String per VBA separieren

Forumthread: Bestimmten bereich aus einem String per VBA separieren

Bestimmten bereich aus einem String per VBA separieren
04.05.2024 09:44:33
marspoki2
Hallo Profis,

ich habe mal eine Kurze Frage.

Ich möchte gerne aus einem String (Beispiel siehe unten) bestimmte Daten extrahieren. (Die Tabelle kommt mit ganz vielen Städten in diesem Format.)

ort-typ="Dorf" ort-name="Winterstein" webseite="https://www.waltershausen.de/unsere-stadt-und-ihre-ortsteile/winterstein/" ,Waltershausen-Winterstein

als Ergebnis möchte ich dann gern

a = Dorf
b= Winterstein
c = https://www.waltershausen.de/unsere-stadt-und-ihre-ortsteile/winterstein/
d= Waltershausen-Winterstein

haben.

Hat jemand eine Idee wie ich das mit VBA geschickt separieren kann, damit ich die gewünschten Daten in einzelne Strings laden kann?
Das Problem sind für mich die Anführungszeichen. Irgendwie komme ich da mit Right und Mid nicht klar.

vielen Dank für Hilfe
Sebastian


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 10:04:34
{Boris}
Hi,

teste mal:

Sub test()

Dim s As String, t As String, x As Long
Dim arr
s = Range("A1") 'da steht der String
arr = Split(s, """")
For x = 0 To UBound(arr)
If InStr(1, arr(x), "=") = 0 Then t = t & x + 1 & ". " & Replace(arr(x), """", "") & Chr(10)
Next x
MsgBox t
End Sub


VG, Boris
Anzeige
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 10:06:47
Beverly
Hi Sebastian,

z.B. so (String steht in A1):

Sub Trennen()

Dim strString
strString = Range("A1")
strString = Split(strString, " ")
Range("A2") = Application.Substitute(Application.Substitute(strString(0), "ort-typ=", ""), """", "")
Range("B2") = Application.Substitute(Application.Substitute(strString(1), "ort-name=", ""), """", "")
Range("C2") = Application.Substitute(Application.Substitute(strString(2), "webseite=", ""), """", "")
Range("D2") = Mid(strString(3), 2)
End Sub


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 13:46:52
Daniel
Hi

Wenn immer alle Informationstypen da sind und in der selben Reihenfolge stehen:

Txt =  dein Text

a = split(Txt, """")(1)
b = split(Txt, """")(3)
c = split(Txt, """")(5)
d = split(Txt, ",")(1)


Für d auch alternativ:
d = Mid(split(Txt, """")(6), 2)


Gruß Daniel


Anzeige
Ohne VBA geht es auch
05.05.2024 12:37:22
RPP63
Moin!
=LET(t;TEXTTEILEN(A1;"""");HSTAPELN(INDEX(t;{2.4.6});TEIL(INDEX(t;7);3;99)))

Gruß Ralf
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 11:33:23
marspoki2
Das funktioniert leider beides nicht so wie gewollt.

Ich würde jetzt mal die die "" mit Replace ersetzen. Der Code würde jetzt so aussehen damit ich schonmal den Ort bekomme. Allerdings bekomme ich damit ja alles was nach "ort-typ=" kommt. und ich möchte nur bis "ort-name=Winterstein" auslesen.


Sub test2()

Dim s As String

s = "ort-typ=Dorf ort-name=Winterstein"

ort = Mid(s, InStr(s, "ort-typ=") + 8) 'ergibt Dorf ort-name=Winterstein

MsgBox ort

End Sub



Anzeige
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 12:01:41
{Boris}
Hi,

dieser Code

Sub test()

Dim s As String, t As String, x As Long
Dim arr
s = Range("A1") 'da steht der String
arr = Split(s, """")
For x = 0 To UBound(arr)
If InStr(1, arr(x), "=") = 0 Then t = t & Replace(arr(x), """", "") & Chr(10)
Next x
MsgBox t
End Sub


liefert als Ergebnis

Userbild

Nur der letzte Eintrag muss dann noch von den ersten beiden Zeichen "befreit" werden. Ansonsten liefert er das, was Du eingangs gewünscht hast.
Hat sich Dein Wunsch inzwischen geändert?

VG, Boris

Anzeige
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 12:12:39
marspoki2
Naja ich bastel das jetzt schon eine Weile . und dachte es ist einfacher die "" zu entfernen.

Du hast recht, ich bekomme das in der MsgBox gespiegelt.
Nur wie bekomme ich jetzt den Ort und den link in einzelne Variablen? Im Monent fällt mich nicht ein wie ich das jetzt trennen kann :-(

Vielleicht kannst du mir dabei noch helfen? Das wäre super.

Viele Grüße und Danke
Sebastian
Anzeige
AW: Bestimmten bereich aus einem String per VBA separieren
04.05.2024 12:21:59
marspoki2
habs rausbekommen, einfach die Arrays einzeln speichern :-)

Danke Danke Danke

s = Replace(arr(3), """", "")
l = Replace(arr(5), """", "")
g = Replace(arr(7), """", "")
t = Replace(arr(8), ",", "")
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige