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.