Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
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
Inhaltsverzeichnis

Kommas in Anführungszeichen ignorieren

Kommas in Anführungszeichen ignorieren
27.10.2022 11:16:29
JanVBAnoob
Hallo
Lerne jetzt seit 1-2 Monaten langsam mit VBA Makros zu schreiben. Ich versuche einen automatischen Import zu Programmieren.
Soweit klappt ja auch fast alles.
Problem: Ich habe eine Zeichenfolge welche Kommas als Trennzeichen benutzt. Jedoch sollen Kommas welche zwischen Anführungszeichen stehen nicht als Trennzeichen angesehen werden.
Beispiel:
Soll aufgetrennt werden:
1,23,596,"2,5Bäume",5,5899
Ergebnis(Falsch):
1 | 23 | 596 | "2 | 5Bäume" | 5 | 5899
Soll Ergebnis:
1 | 23 | 596 | "2,5Bäume" | 5 | 5899
Eine Formel zum auftrennen:

Function XTPCK(Name)
Parts = Split(Name, ",")
Lengh = ArrayLen(Parts)
XTPCK = Parts(Lengh - (Lengh - 6))
End Function
Public Function ArrayLen(arr As Variant) As Integer
ArrayLen = UBound(arr) - LBound(arr) + 1
End Function
(finde nicht heraus wie ich Bilder oder Tabellen einfüge daher habe ich "|" als Markierung für eine neue Zelle genommen.)
Danke!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kommas in Anführungszeichen ignorieren
27.10.2022 11:32:30
Rudi
Hallo,

Sub aaa()
Dim a
a = XSPLIT("1,23,596,""2,5Bäume"",5,5899")
Cells(1, 1).Resize(, UBound(a) + 1) = a   'Ausgabe
End Sub
Function XSPLIT(s As String)
Dim b As Boolean, i As Integer, strTmp As String, t As String
Const cDELIM = "#"
b = False
For i = 1 To Len(s)
t = Mid(s, i, 1)
If t = """" Then b = Not (b)
If Not b Then
strTmp = strTmp & IIf(t = ",", cDELIM, t)
Else
strTmp = strTmp & t
End If
Next i
XSPLIT = Split(strTmp, cDELIM)
End Function
Gruß
Rudi
AW: Kommas in Anführungszeichen ignorieren
28.10.2022 19:40:41
JanVBAnoob
Danke für eure antworten!!
Der Code von Rudi funktioniert genau so wie ich es mir vorgestellt habe. DANKE
Auch wenn ich zwei tage gebraucht habe um herauszufinden wie ich den funktionierend in meinem code implementiere :)
Anzeige
AW: Kommas in Anführungszeichen ignorieren
27.10.2022 11:42:43
Daniel
Hi
probiers mal so:

Function XTPCK(Name)
parts = Split(Name, """")
For i = 0 To UBound(parts) Step 2
parts(i) = Replace(parts(i), ",", "|")
Next
parts = Join(parts, """")
parts = Split(parts, "|")
Lengh = ArrayLen(parts)
XTPCK = parts(Lengh - (Lengh - 6))
End Function
der Trick ist hier folgender:
man trennt den Text zunächst mal an den Anführungszeichen auf.
dann stehen alle Teile, die innerhalb von Anzführungszeichen stehen, in den ungraden Indizes (1, 3, 5) und die Werte ohne Anführungszeichen in den graden Indizes (0, 2, 4)
jetzt geht man in einer Schleife durch den Text durch und ersetzt in den geraden Indizes (nicht in Anführungszeichen), das Komma durch ein anderes alternatives Trennzeichen (darf im Text nicht vorkommen).
Dann jetzt man den Text zusammen und trennt erneut, aber mit dem alternativen Trennzeichen.
nach dem Laufzeitfeher am Ende musst du selber schauen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige