VBA tekst u stupce

Sadržaj

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.

wave wave wave wave wave