Ich hoffe, jemand kann einen besseren Ansatz für das, was ich tue, bieten. Leider sitzen die Daten und der Code auf Client-Systemen, so dass ich sie nicht teilen kann.VBA Verwenden regulärer Ausdrücke, um eine Zeichenfolge zu trennen
Ich habe diese lange Zeichenfolge, die zuvor eine Datentabelle war und die Werte in Zeilen und Spalten wieder aufteilen muss. Das System ist stark gesperrt, so dass ich nur VBA verwenden kann. Der beste Weg, an den ich denken kann, ist die Verwendung von regulären Ausdrücken, um Spalten und Zeilen zu identifizieren. Ich habe mein reguläres Ausdruck-Objekt eingerichtet und gegen die Eingabe-Zeichenfolge ausgeführt, habe alle Übereinstimmungen, die ich brauche, was in Ordnung ist. Das Problem ist, dass wenn ich mache
re = CreateObject("VBScript.RegExp")
re.pattern = mypattern
re.split(myString)
Soweit ich sehen kann, gibt es keine Möglichkeit, die Werte zu behalten, auf die ich spalte. In einigen Fällen möchte ich trotzdem in der Mitte der Regex-Zeichenfolge aufteilen.
Die vielversprechendste Lösung, die ich denke, ist zu tun
re = CreateObject("VBScript.RegExp")
re.pattern = mypattern
Set matches = re.execute(myString)
for each match in matches:
'do something with match.firstindex
Ich hielt gerade Begrenzungszeichen eingefügt und dann gespalten werden. Leider scheint VBA keine Methode zu haben, ein Zeichen in eine Zeichenkette einzufügen, es sieht ein bisschen klobig aus, um den ersten Index zu verwenden.
Hat jemand irgendwelche Gedanken zu besseren Ansätzen? Sehr geschätzt wenn ja.
Ohne irgendwelche - sogar dummy - Daten ist es nicht klar, wie zu helfen. –
Ziemlich sicher 'Matches' muss eine Objektreferenz sein und somit mit dem' Set' Schlüsselwort zugewiesen werden. Frage: Warum verwenden Sie keine frühzeitige Bindung, um mit APIs zu arbeiten, mit denen Sie nicht vertraut sind? –
Danke für Ihre Gedanken. Ich werde versuchen, eine bessere Beschreibung der Daten/Zeichenfolge später zu teilen. Ich bin nicht auf den Begriff frühe Bindung gestoßen, aber es sieht so aus, als würde ich ihn benutzen. Ich habe gerade den obigen Code im Stackoverflow-Editor eingegeben, da ich keinen Zugriff auf den Code habe, den ich gerade verwende. Ja, ich denke, gesetztes Schlüsselwort ist erforderlich. – soundofsilence