Besedilo VBA v stolpce

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.

wave wave wave wave wave