Anzeige
Archiv - Navigation
1180to1184
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

TextToColumns

TextToColumns
Gordon
Moin moin,
ich hab mal eine Frage zur Erläuterung, weil ich nichts wirklich hilfreiches beim googlen gefunden habe. Und zwar habe ich mir mal per Recorder die Funktion 'Text in Spalten...' aufgenommen und angeschaut. Dabei ergab sich dieser Code:
.Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=True, OtherChar:= _
"|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1),  _
_
Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array( _
12, 1) _
), TrailingMinusNumbers:=True
Mich interessiert nun, wass die ganzen Arrays dort zu bedeuten haben? Kann mir das jemand vielleicht erklären oder mir einen Link an die Hand geben wo das erklärt wird. Am besten für Doofe wie mich! :-))
Lieben Gruß
Gordon

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: TextToColumns
14.10.2010 23:42:00
Tino
Hallo,
in diesem Fall handelt es sich bei jedem Array um eine Spalte
Die erste Zahl ist die Spalte die zweite Zahl gibt das Format dieser Spalte vor bzw.
ob diese übersprungen werden soll.
In Deinem Fall sind es 12 Spalten die alle im Standardformat getrennt eingefügt werden.
Gruß Tino
AW: TextToColumns
15.10.2010 10:38:09
Gordon
Ja,
ok...das mit den Spalten hatte ich geahnt, aber da kommt irgendwie was nicht - oder ich verstehe das falsch. Denn die Daten, die auf Spalten hinterher aufdrösel ergeben am Ende mehr als 12 Spalten. Verstehe nicht warum es nur 12 Arrays sind.
Gruß
Gordon
kann ich Dir auch nicht sagen...
15.10.2010 10:44:29
Tino
Hallo,
, bei mir sind es bei 25 auch 25 von diesen Array.
Gruß Tino
Anzeige
AW: kann ich Dir auch nicht sagen...
15.10.2010 10:48:50
Gordon
Hmm.....wenn ich später zu Hause bin, stelle ich mal einig vom den Text rein, der getrennt werden soll....vielleicht habe ich da auch einen Denkfehler.
AW: kann ich Dir auch nicht sagen...
15.10.2010 17:27:14
Gordon
So,
hier nun hab eich hier mal einen kleinen Auszug aus dem Text der in die Spalten übertragen wird:

MemberId;Firstname;Middlename;Lastname;BirthYear;Youth;AgeGroup;Club;Teams
06-1111;Joachim;;Mustermann;;;;Hamburg;|H|7 |
06-2222;Chike;;Mustermann;1993;;U19;Billstedt;|H|M1 | M1 |
06-8888;Simon;;Mustermann;1999;;U13;Schnelsen;|H|M1 | M1 | M1 |
06-9999;Calvin;;Mustermann;1996;;U15;Wedel;|H|M1 | M2 | M2 | M2 | M1 | M1 |
06-1212;Sonja;;Mustermann;;;;Glinde;|H|1 | 1 |
Getrennt wird nach ";" und "|".
Wenn ich das nun ausführe komme ich bei der Überschrift ja auf 9 Spalten und beim vierten Eintrag (06-9999) auf 16 Spalten. Verstehe das daher mit de 12 Arrays nichts. :-(
Wo ist mein Denkfehler? Wäre froh, wenn mir jemand helfen könnte....
Gruß
Gordon
Anzeige
AW: kann ich Dir auch nicht sagen...
15.10.2010 18:05:16
Tino
Hallo,
bei mir gibt er 17 aus, weil es ja 16 von diesen Zeichen gibt.
 ABCDE
1606-9999;Calvin;;Mustermann;1996;;U15;Wedel;|H|M1 | M2 | M2 | M2 | M1 | M1 |  8816

Formeln der Tabelle
ZelleFormel
C16=LÄNGE(A16)-LÄNGE(WECHSELN(A16;";";""))
D16=LÄNGE(A16)-LÄNGE(WECHSELN(A16;"|";""))
E16=SUMME(C16:D16)

    Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=True, OtherChar:= _
        "|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
        Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1) _
        , Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1)), _
        TrailingMinusNumbers:=True
Also bei mir ist es so richtig, keine Ahnung warum es bei Dir anders ist.
Gruß Tino
Anzeige
AW: kann ich Dir auch nicht sagen...
15.10.2010 18:20:55
Gordon
Hmm...echt eigenartig....habe es jetzt auch noch mal mit dem kleinen Auszug probiert. Da ging es auch Array(17,1). Wenn ich aber die gesamte Tabelle (630 Zeilen) auf die Spalten aufteile sind es wieder nur zwölf Arrays....komisch.
Aber dann eine andere Frage zu dem Thema:
Ich schreibe gerade ein Makro wo diese Daten eingelesen werden (in der bekannten Form) und dann auf die Spalten aufgeteilt werden sollen. Daher auch TextToColumns für den Code.
Nun ist es so, dass die Daten von Woche zu Woche immer mehr werden und so zusagen jedes mal mehr Spalten benötigt werden. Beispiel:
Der schon bekannte Datensatz (06-9999) hat ja 17 Spalten gehabt. Beim nächsten mal könnte es schon aber nach 18, 19 oder mehr Spalten verlangen.
Würde das dann überhaupt mit dem obenstehenden Code noch funktionieren oder ginge es nicht mehr, weil dort nur 17 Arrays vorhanden sind?
Gruß
Gordon
Anzeige
das ist dem Code eigentlich Wurst,...
15.10.2010 18:41:52
Tino
Hallo,
für die Spalten für die es keine Formatinfo gibt werden als Standard übernommen.
Lösche doch einfach mal im Code alle Array bis auf eine und teste mal was passiert.
... , FieldInfo:=Array(Array(1, 1)), ...
Gruß Tino
AW: das ist dem Code eigentlich Wurst,...
15.10.2010 22:38:11
Gordon
Hey,
danke für die Info...scheint so zu gehen...danke dir!
Gruß
Gordon

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige