Ich versuche, ein Makro in VBA zu schreiben, um eine Reihe von Adressen alle im selben Format in separaten Spalten zu teilen. Also eine Spalte mit einer Straßenanschrift, eine Vorstadt, eine Postleitzahl und eine Spalte mit einem Ländercode. Die Adressen alle folgen diesem Format:Trennen von Zeichenfolge in Spalten mit Excel VBA
123 Gefälschte Street, Suburbia QLD 4123
Ich wünschte, ich dies mit SQL nähern könnte, aber ich versuche, diese Funktion in einer Excel-Arbeitsmappe zu halten, wo Adressen von zentraler Bedeutung sein würden.
Mein geplanter Ansatz ist ein for-Schleife zu schreiben, die die Länge der Spalte D zählen (wo die Adressen gespeichert werden) ... so
For LngRow = 2 To Wksht.Range("D" & Wksht.Rows.Count).End(xlUp).Row
//concate/parse here//
Next
und dann wäre es ein Standardverfahren der Arbeits rückwärts folgen, wo es würde trennen und die Postleitzahl (4 Ziffern) schreiben, dann den Staatscode (ein Array von Staatscodes), dann den Vorort (die Zeichenkette zwischen dem Staatscode und dem begrenzenden Komma nach der Straßenadresse) und schließlich die Straßenadresse, die ist was auch immer String ist, nachdem der Rest entfernt und neu geschrieben wurde.
Ich denke, rückwärts arbeiten ist am besten, da die Adresse ändert, während die letzten 3 Bits der Informationen Standard sind.
Ist es möglich, ein solches Makro in VBA zu schreiben? Vor allem, wie SQLish es scheint.
Ich glaube, Sie ubound von arr2 für Postleitzahl und Staat Code nur für den Fall Vorort nehmen müssen ist zwei Worte – winghei
wenn irgendein Teil seine Größe ändert, geht der ganze Code für einen Wurf. :) Es wird ein falsches Ergebnis geben. Das ist der Grund, warum die Anweisung ... "durch Beschreibung in der Frage geht und davon ausgeht, dass das Adressformat gleich bleibt" .... manchmal muss man sich absichern :) aber danke für den Kommentar. – cyboashu