Text VBA do stĺpcov

Tento tutoriál vám ukáže, ako previesť reťazec textu v jednej bunke na viac stĺpcov pomocou metódy Range TextToColumns vo VBA

Text do stĺpcov

The Rozsah.TextToColumns metóda vo VBA je účinný nástroj na čistenie údajov, ktoré boli importované napríklad z textových súborov alebo súborov CSV.

Zvážte nasledujúci pracovný list.

Dáta prišli do Excelu všetky v jednom stĺpci a sú oddelené úvodzovkami.

Na oddelenie týchto údajov do stĺpcov môžete použiť metódu Range TextToColumns.

Syntax TextToColumns

výraz.TextToColumns (Destinácia, Dátový typ, Kvalifikátor textu, Po sebe idúci odstraňovač, Tab, Bodkočiarka, Čiarka, Vesmír, Iné, OtherChar, FieldInfo, Desatinná čiarka, Tisícky oddeľovač, TrailingMinusNumbers)

Výraz

Toto je rozsah buniek, ktoré chcete rozdeliť - napr .: Rozsah („A1: A23“).

Všetky argumenty v metóde TextToColumns sú voliteľné (majú okolo seba hranaté zátvorky).

Destinácia

Tam, kde chcete umiestniť výsledok - často prepíšete údaje a rozdelíte ich na rovnaké miesto.

Dátový typ

Typ analýzy textu, ktorý používate - môže to byť buď xlDemitmit (predvolené, ak je vynechané), príp xlFixedWidth.

Kvalifikátor textu

Ak máte okolo každého poľa v texte, ktoré rozdeľujete, úvodzovky (jednoduché alebo dvojité), musíte uviesť, či sú jednoduché alebo dvojité.

ConsequtiveDelimiter

Je to buď pravda, alebo nepravda, a hovorí VBA, aby zvážil 2 rovnaké oddeľovače spoločne, ako keby to bol 1 oddeľovač.

Tab

Toto je buď Pravda z Falošné, predvolené je Falošné - to hovorí VBA, že údaje sú oddelené tabulátorom.

Bodkočiarka

Toto je buďPravda z Falošné, predvolené je Falošné - to hovorí VBA, že údaje sú oddelené bodkočiarkou.

Vesmír

Toto je buď Pravda z Falošné, predvolené je Falošné - to hovorí VBA, že údaje sú oddelené medzerou.

Iné

Toto je buď Pravda z Falošné, predvolené je Falošné. Ak to nastavíte na hodnotu True, potom ďalší argument, OtherChar je potrebné špecifikovať.

OtherChar

Toto je znak, ktorým je text oddelený (napríklad: alebo | napríklad).

FieldInfo

Toto je pole obsahujúce informácie o type údajov, ktoré sa oddeľujú. Prvá hodnota v poli označuje číslo stĺpca v údajoch a druhá hodnota označuje konštantu, ktorú použijete na zobrazenie požadovaného typu údajov.

Príkladom pre 5 stĺpcov s dátovými typmi textu, čísel a dátumov môže byť:

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

Ďalší spôsob, ako to nastaviť, je:

Pole (pole (1, 2), pole (2, 2), pole (3, 1), pole (4, 1), pole (5, 3))

Čísla v druhom stĺpci sú hodnoty konštánt, kde konštanta xlTextFormat má hodnotu 2, xlGeneralFormat (predvolené) má hodnotu 1 a xlMDYFormat má hodnotu 3.

Desatinná čiarka

Môžete zadať oddeľovač desatinných miest, ktorý VBA musí používať, ak sú v údajoch čísla. Ak je vynechaný, použije systémové nastavenie, čo je zvyčajne bodka.

Tisícky oddeľovač

Môžete zadať oddeľovač tisícov, na ktorý musí VBA použiť, ak sú v údajoch čísla. Ak je vynechaný, použije systémové nastavenie, ktoré je zvyčajne čiarkou.

TrailingMinusNumbers

Tento argument je do značnej miery z dôvodu kompatibility s údajmi generovanými zo starších systémov, kde bolo za číslom často znamienko mínus a nie predtým. Ak sú záporné čísla za znamienkom mínus, mali by ste to nastaviť na hodnotu True. Predvolená hodnota je False.

Konvertovanie textu na stĺpce

Nasledujúci postup prevedie vyššie uvedené údaje programu Excel do stĺpcov.

12345678910111213141516 Sub TextToCol1 ()Rozsah ("A1: A25"). TextToColumns _Cieľ: = Rozsah ("A1: A25"),Typ údajov: = xlDelimited, _Kvalifikátor textu: = xlDoubleQuote, _Po sebe idúci oddeľovač: = Pravda, _Tab: = False, _Stredník: = nepravda, _Čiarka: = nepravda,Medzerník: = pravda, _Ostatné: = nepravda, _FieldInfo: = pole (pole (1, 1), pole (2, 1), pole (3, 1), pole (4, 1), pole (5, 1)), _DecimalSeparator: = "." , _Oddeľovač tisíc: = ",", _TrailingMinusNumbers: = PravdaKoniec pod

Vo vyššie uvedenom postupe sme vyplnili všetky parametre. Mnoho parametrov je však nastavených na hodnotu False alebo na predvolené nastavenie a nie sú potrebné. Čistšia verzia vyššie uvedeného postupu je uvedená nižšie. Názvy parametrov musíte použiť na označenie, ktoré parametre používame.

1234567 Sub TextToCol2 ()Rozsah ("A1: A25"). TextToColumns _Typ údajov: = xlDelimited, _Kvalifikátor textu: = xlDoubleQuote, _Po sebe idúci oddeľovač: = Pravda, _Medzerník: = Pravda,Koniec pod

V skutočnosti sú požadované iba 4 parametre - údaje sú oddelené dvojitou úvodzovkou, chcete, aby boli za sebou nasledujúce úvodzovky považované za jeden a údaje sú oddelené medzerou!

Pre ešte rýchlejší riadok kódu by sme mohli vynechať názvy parametrov, ale potom by sme museli vložiť čiarky, aby sme uložili miesto parametra. Informácie musíte vložiť iba k poslednému parametru, ktorý používate - v tomto prípade priestor, ktorý oddeľuje údaje, čo je 8. parameter.

123 Sub TextToCol3 ()Rozsah ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueKoniec pod

Akonáhle spustíte ktorýkoľvek z vyššie uvedených postupov, údaje budú oddelené podľa obrázku nižšie.

wave wave wave wave wave