VBA -tekst til kolonner

Indholdsfortegnelse

Denne vejledning viser dig, hvordan du konverterer tekststreng i en enkelt celle til flere kolonner ved hjælp af metoden Range TextToColumns i VBA

Tekst til kolonner

Det Rækkevidde.TextToColumns metode i VBA er et kraftfuldt værktøj til at rydde op i data, der f.eks. er importeret fra tekst- eller csv -filer.

Overvej følgende regneark.

Dataene er kommet ind i Excel alt i en kolonne og er adskilt af anførselstegn.

Du kan bruge metoden Range TextToColumns til at opdele disse data i kolonner.

Syntaks for TextToColumns

udtryk.TextToColumns (Bestemmelsessted, Datatype, TextQualifier, Efterfølgende begrænsning, Tab, Semikolon, Komma, Plads, Andet, Andet Char, FieldInfo, DecimalSeparator, TusinderSeparator, TrailingMinusNumbers)

Udtryk

Dette er celleområdet, du ønsker at opdele - f.eks .: Område (“A1: A23”).

Alle argumenterne i metoden TextToColumns er valgfri (de har firkantede parenteser omkring dem).

Bestemmelsessted

Hvor du vil have resultatet til at blive lagt - ofte tilsidesætter du dataene og deler dem på samme sted.

Datatype

Den type tekstanalyse, du bruger - det kan enten være xlBegrænset (standard hvis udeladt) eller xlFixedWidth.

TextQualifier

Hvis du har anførselstegn (enkelt eller dobbelt) omkring hvert felt i teksten, du deler, skal du angive, om de er enkelt eller dobbelt.

ConsequtiveDelimiter

Dette er enten sandt eller forkert og fortæller VBA at overveje 2 af de samme afgrænsere sammen som om det var 1 afgrænser.

Tab

Dette er enten Sand af Falsk, standard er Falsk - dette fortæller VBA, at dataene er afgrænset af en fane.

Semikolon

Dette er entenSand af Falsk, standard er Falsk - dette fortæller VBA, at dataene er afgrænset af et semikolon.

Plads

Dette er enten Sand af Falsk, standard er Falsk - dette fortæller VBA, at dataene er afgrænset af et mellemrum.

Andet

Dette er enten Sand af Falsk, standard er Falsk. Hvis du indstiller dette til Sand, er det næste argument, Andet Char skal specificeres.

Andet Char

Dette er det tegn, hvormed teksten adskilles (dvs.: eller | for eksempel).

FieldInfo

Dette er en matrix, der indeholder oplysninger om den datatype, der adskilles. Den første værdi i matrixen angiver kolonnetallet i dataene, og den anden værdi angiver den konstant, du vil bruge til at skildre den datatype, du har brug for.

Et eksempel på for 5 kolonner med datatyper tekst, tal og datoer kan være:

Array (Array (1, xlTextFormat), Array (2, xlTextFormat), Array (3, xlGeneralFormat), Array (4, xlGeneralFormat), Array (5, xlMDYFormat))

En anden måde at angive dette på er:

Array (Array (1, 2), Array (2, 2), Array (3, 1), Array (4, 1), Array (5, 3))

Tallene i den anden kolonne er værdierne for konstanterne, hvor konstanten xlTextFormat har en værdi på 2, xlGeneralFormat (standard) har en værdi på 1, og xlMDYFormat har en værdi på 3.

DecimalSeparator

Du kan angive den decimalseparator, som VBA skal bruge til, hvis der er tal i dataene. Hvis den udelades, bruger den systemindstillingen, som normalt er en periode.

TusinderSeparator

Du kan angive den tusinder -separator, som VBA skal bruge til, hvis der er tal i dataene. Hvis den udelades, bruger den systemindstillingen, som normalt er et komma.

TrailingMinusNumbers

Dette argument er stort set for kompatibilitet for data, der genereres fra ældre systemer, hvor et minustegn ofte var efter tallet og ikke før. Du bør indstille dette til True, hvis negative tal har minustegnet bag sig. Standarden er falsk.

Konvertering af tekst til kolonner

Følgende procedure konverterer Excel -dataene ovenfor til kolonner.

12345678910111213141516 Sub TextToCol1 ()Område ("A1: A25"). TextToColumns _Destination: = Område ("A1: A25"),Datatype: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutiveDelimiter: = True, _Fane: = Falsk, _Semikolon: = Falsk, _Komma: = Falsk,Mellemrum: = Sandt, _Andet: = Falsk, _FieldInfo: = Array (Array (1, 1), Array (2, 1), Array (3, 1), Array (4, 1), Array (5, 1)), _DecimalSeparator: = "." , _ThousandsSeparator: = ",", _TrailingMinusNumbers: = TrueAfslut Sub

I ovenstående procedure har vi udfyldt alle parametrene. Mange af parametrene er dog indstillet til falsk eller til standardindstillingen og er ikke nødvendige. En renere version af ovenstående procedure er angivet nedenfor. Du skal bruge parameternavnene til at angive, hvilke parametre vi bruger.

1234567 Sub TextToCol2 ()Område ("A1: A25"). TextToColumns _Datatype: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutiveDelimiter: = True, _Plads: = Sandt,Afslut Sub

Der er kun 4 parametre, der faktisk kræves - dataene er afgrænset af et dobbelt citat, du vil have på hinanden følgende citater behandlet som et, og dataene er adskilt af et mellemrum!

For en endnu hurtigere kodelinje kunne vi udelade parameternavne, men så skulle vi sætte kommaer for at gemme parameterens sted. Du behøver kun at lægge oplysninger så langt som til den sidste parameter, du bruger - i dette tilfælde mellemrummet, der adskiller dataene, som er den 8. parameter.

123 Sub TextToCol3 ()Område ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueAfslut Sub

Når du har kørt nogen af ​​procedurerne ovenfor, vil dataene blive adskilt i henhold til nedenstående grafik.

wave wave wave wave wave