Ta vadnica vam bo pokazala, kako pretvorite niz besedila v eni celici v več stolpcev z metodo Range TextToColumns v VBA
Besedilo v stolpce
The Domet.TextToColumns method v VBA je močno orodje za čiščenje podatkov, ki so bili na primer uvoženi iz besedilnih ali csv datotek.
Razmislite o naslednjem delovnem listu.
Podatki so prišli v Excel v enem stolpcu in so ločeni z narekovaji.
Za ločitev teh podatkov v stolpce lahko uporabite metodo Range TextToColumns.
Sintaksa TextToColumns
izraz.TextToColumns (Cilj, Vrsta podatkov, TextQualifier, Zaporedni omejevalnik, Zavihek, Podpičje, Vejica, Vesolje, Drugo, DrugoChar, FieldInfo, DecimalSeparator, Na tisoče ločevalcev, Sledilne številke minusov)
Izraz
To je obseg celic, ki jih želite razdeliti - na primer: obseg (“A1: A23”).
Vsi argumenti v metodi TextToColumns so neobvezni (okrog njih so oglati oklepaji).
Cilj
Kjer želite, da se rezultat vnese - pogosto preglasite podatke in jih razdelite na isto mesto.
Vrsta podatkov
Vrsta razčlenjevanja besedila, ki jo uporabljate - lahko je xlDelimited (privzeto, če je izpuščeno), ali xlFixedWidth.
TextQualifier
Če imate okrog vsakega polja v besedilu, ki ga delite, narekovaje (enojne ali dvojne), morate navesti, ali so enojni ali dvojni.
Posledica omejevalnika
To je res ali napačno in pove VBA, naj upošteva 2 enaka ločila skupaj, kot če bi bila 1 ločila.
Zavihek
To je tudi Prav od Napačno, privzeto je Napačno - to pove VBA, da so podatki ločeni z zavihkom.
Podpičje
To je tudiPrav od Napačno, privzeto je Napačno - to pove VBA, da so podatki ločeni s podpičjem.
Vesolje
To je tudi Prav od Napačno, privzeto je Napačno - to pove VBA, da so podatki ločeni s presledkom.
Drugo
To je tudi Prav od Napačno, privzeto je Napačno. Če to nastavite na True, potem naslednji argument, DrugoChar je treba določiti.
DrugoChar
To je znak, s katerim je besedilo ločeno (npr .: ali | na primer).
FieldInfo
To je matrika, ki vsebuje informacije o vrsti podatkov, ki se ločujejo. Prva vrednost v matriki označuje številko stolpca v podatkih, druga vrednost pa konstanto, ki jo boste uporabili za prikaz vrste podatkov, ki jo potrebujete.
Primer za 5 stolpcev z vrstami podatkov besedilo, številke in datumi je lahko:
Niz (Niz (1, xlTextFormat), Niz (2, xlTextFormat), Niz (3, xlGeneralFormat), Niz (4, xlGeneralFormat), Niz (5, xlMDYFormat))
Drug način za določitev tega je:
Niz (Niz (1, 2), Niz (2, 2), Niz (3, 1), Niz (4, 1), Niz (5, 3))
Številke v drugem stolpcu so vrednosti konstant, kjer ima konstanta xlTextFormat vrednost 2, xlGeneralFormat (privzeto) vrednost 1 in xlMDYFormat vrednost 3.
DecimalSeparator
Določite lahko decimalni ločilo, ki ga mora uporabiti VBA, če so v podatkih številke. Če je izpuščena, bo uporabila sistemsko nastavitev, ki je običajno pika.
Na tisoče ločevalnikov
Določite lahko ločevalnik tisoč, ki ga mora uporabiti VBA, če so v podatkih številke. Če izpustite, bo uporabil sistemsko nastavitev, ki je običajno vejica.
Sledilne številke minusov
Ta argument je v veliki meri združljiv s podatki, ki nastanejo iz starejših sistemov, kjer je bil znak minus pogosto za številko in ne prej. To nastavite na True, če imajo negativne številke znak minus. Privzeto je False.
Pretvarjanje besedila v stolpce
Naslednji postopek pretvori zgoraj navedene Excelove podatke v stolpce.
12345678910111213141516 | Sub TextToCol1 ()Obseg ("A1: A25"). TextToColumns _Cilj: = doseg ("A1: A25"),Vrsta podatkov: = xlDelimited, _Kvalifikator besedila: = xlDoubleQuote, _Omejevalnik zaporedja: = res, _Zavihek: = Napačno, _Podpičje: = napačno, _Vejica: = napačno,Presledek: = res, _Drugo: = napačno, _FieldInfo: = Polje (Niz (1, 1), Niz (2, 1), Niz (3, 1), Niz (4, 1), Niz (5, 1)), _DecimalSeparator: = "." , _Na tisoče ločevalnikov: = ",", _TrailingMinusNumbers: = ResEnd Sub |
V zgornjem postopku smo izpolnili vse parametre. Vendar so mnogi parametri nastavljeni na false ali na privzete nastavitve in niso potrebni. Čistejša različica zgornjega postopka je navedena spodaj. Imena parametrov morate označiti, katere parametre uporabljamo.
1234567 | Sub TextToCol2 ()Obseg ("A1: A25"). TextToColumns _Vrsta podatkov: = xlDelimited, _Kvalifikator besedila: = xlDoubleQuote, _Omejevalnik zaporedja: = res, _Presledek: = res,End Sub |
Dejansko so potrebni samo 4 parametri - podatki so ločeni z dvojnim narekovajem, želite, da se zaporedni narekovaji obravnavajo kot eno, podatki pa so ločeni s presledkom!
Za še hitrejšo vrstico kode bi lahko izpustili imena parametrov, potem pa bi morali vnesti vejice, da shranimo mesto parametra. Podatke morate vnesti le do zadnjega parametra, ki ga uporabljate - v tem primeru presledka, ki ločuje podatke, ki so osmi parameter.
123 | Sub TextToCol3 ()Obseg ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueEnd Sub |
Ko zaženete katerega koli od zgornjih postopkov, bodo podatki ločeni v skladu s spodnjo sliko.