Ovaj će vam vodič pokazati kako pretvoriti niz teksta u jednoj ćeliji u više stupaca pomoću metode Range TextToColumns u VBA
Tekst u stupce
The Domet.TextToColumns metoda u VBA -i moćan je alat za čišćenje podataka koji su uvezeni iz tekstualnih ili csv datoteka, na primjer.
Razmotrite sljedeći radni list.
Podaci su u Excel došli svi u jednom stupcu, a odvojeni su navodnicima.
Pomoću metode Range TextToColumns možete podijeliti te podatke u stupce.
Sintaksa TextToColumns
izraz.TextToColumns (Odredište, Vrsta podataka, Kvalitet teksta, Uzastopni graničnik, Tab, Točka i zarez, Zarez, Prostor, Ostalo, OtherChar, FieldInfo, Decimalni separator, Tisuće odvajača, ZavršniMinuusbrojevi)
Izraz
Ovo je raspon ćelija koje želite podijeliti - npr .: Raspon (“A1: A23”).
Svi argumenti u TextToColumns metodi su neobavezni (imaju uglate zagrade oko sebe).
Odredište
Tamo gdje želite staviti rezultat - često nadjačate podatke i podijelite ih na isto mjesto.
Vrsta podataka
Vrsta raščlanjivanja teksta koju koristite - može biti xlOgraničeno (zadano ako je izostavljeno), ili xlFixedWidth.
Kvalitet teksta
Ako imate navodnike (jednostruke ili dvostruke) oko svakog polja u tekstu koji dijelite, morate naznačiti jesu li pojedinačni ili dvostruki.
Posljedični ograničavač
To je ili točno ili netočno i govori VBA -i da razmotri 2 ista razdjelnika zajedno kao da je 1 razdjelnik.
Tab
Ovo je jedno ili drugo Pravi od Lažno, zadano je Netočno - ovo govori VBA -i da su podaci ograničeni tabulatorom.
Točka i zarez
Ovo je jedno ili drugoPravi od Lažno, zadano je Netočno - ovo govori VBA -i da su podaci omeđeni zarezom.
Prostor
Ovo je jedno ili drugo Pravi od Lažno, zadano je Netočno - ovo govori VBA -i da su podaci omeđeni razmakom.
Ostalo
Ovo je jedno ili drugo Pravi od Lažno, zadano je Netočno. Ako ovo postavite na True, sljedeći argument, OtherChar potrebno je navesti.
OtherChar
Ovo je znak kojim se tekst odvaja (npr .: ili | na primjer).
FieldInfo
Ovo je niz koji sadrži podatke o vrsti podataka koji se razdvajaju. Prva vrijednost u nizu označava broj stupca u podacima, a druga vrijednost označava konstantu koju ćete koristiti za prikaz vrste podataka koju trebate.
Primjer za 5 stupaca s vrstama podataka teksta, brojevima i datumima mogao bi biti:
Polje (Polje (1, xlTextFormat), Niz (2, xlTextFormat), Niz (3, xlGeneralFormat), Niz (4, xlGeneralFormat), Niz (5, xlMDYFormat))
Drugi način da to postavite je:
Niz (niz (1, 2), niz (2, 2), niz (3, 1), niz (4, 1), niz (5, 3))
Brojevi u drugom stupcu su vrijednosti konstanti gdje konstanta xlTextFormat ima vrijednost 2, xlGeneralFormat (zadano) ima vrijednost 1, a xlMDYFormat vrijednost 3.
Decimalni separator
Možete navesti decimalni razdjelnik koji VBA mora koristiti ako u podacima postoje brojevi. Ako se izostavi, upotrijebit će postavke sustava, što je obično točka.
Tisuće odvajača
Možete navesti razdjelnik tisuća koji VBA mora koristiti ako u podacima postoje brojevi. Ako se izostavi, upotrijebit će postavku sustava, koja je obično zarez.
ZavršniMinuusbrojevi
Ovaj argument uglavnom služi za kompatibilnost podataka koji se generiraju iz starijih sustava gdje je znak minus često bio iza broja, a ne prije. Ovo biste trebali postaviti na True ako negativni brojevi iza sebe imaju znak minus. Zadana vrijednost je Netačno.
Pretvaranje teksta u stupce
Sljedeći postupak pretvorit će gornje Excel podatke u stupce.
12345678910111213141516 | PodtekstToCol1 ()Raspon ("A1: A25"). TextToColumns _Odredište: = Raspon ("A1: A25"),Vrsta podataka: = xlOgraničeno, _Kvalitet teksta: = xlDvostruki citat, _Uzastopni graničnik: = Istina, _Kartica: = Netačno, _Točka i zarez: = Netačno, _Zarez: = Netačno,Razmak: = Istina, _Ostalo: = Netačno, _FieldInfo: = Polje (niz (1, 1), niz (2, 1), niz (3, 1), niz (4, 1), niz (5, 1)), _DecimalSeparator: = "." , _Razdjelnici tisuća: = ",", _TrailingMinusNumbers: = TačnoKraj podm |
U gornjem postupku smo ispunili sve parametre. Međutim, mnogi su parametri postavljeni na false ili na zadanu postavku i nisu potrebni. Čistija verzija gornjeg postupka navedena je u nastavku. Morate koristiti nazive parametara kako biste naznačili koje parametre koristimo.
1234567 | PodtekstToCol2 ()Raspon ("A1: A25"). TextToColumns _Vrsta podataka: = xlOgraničeno, _Kvalitet teksta: = xlDvostruki citat, _Uzastopni graničnik: = Istina, _Razmak: = Istina,Kraj podm |
Postoje samo 4 parametra koji su zapravo potrebni - podaci su omeđeni dvostrukim navodnikom, želite da se uzastopni navodnici tretiraju kao jedan, a podaci su odvojeni razmakom!
Za još brži redak koda mogli bismo izostaviti nazive parametara, ali tada bismo morali staviti zareze da bismo spremili mjesto parametra. Samo trebate unijeti podatke do zadnjeg parametra koji koristite - u ovom slučaju razmak koji razdvaja podatke koji su osmi parametar.
123 | PodtekstToCol3 ()Raspon ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueKraj podm |
Nakon što pokrenete bilo koji od gore navedenih postupaka, podaci će se odvojiti prema donjoj slici.