Acest tutorial vă va arăta cum să convertiți șirul de text dintr-o singură celulă în mai multe coloane folosind metoda Range TextToColumns în VBA
Text către coloane
The Gamă.TextToColumns Metoda din VBA este un instrument puternic pentru curățarea datelor care au fost importate din fișiere text sau CSV, de exemplu.
Luați în considerare următoarea foaie de lucru.
Datele au intrat în Excel într-o singură coloană și sunt separate prin ghilimele.
Puteți utiliza metoda Range TextToColumns pentru a separa aceste date în coloane.
Sintaxă TextToColumns
expresie.TextToColumns (Destinaţie, DataType, TextQualifier, Delimitator consecutiv, Tab, Punct şi virgulă, Virgulă, Spaţiu, Alte, OtherChar, FieldInfo, Separator zecimal, Mii Separator, TrailingMinusNumbers)
Expresie
Acesta este Gama de celule pe care doriți să o împărțiți - de exemplu: Gama („A1: A23”).
Toate argumentele din metoda TextToColumns sunt opționale (au paranteze pătrate în jurul lor).
Destinaţie
Unde doriți ca rezultatul să fie pus - deseori înlocuiți datele și le împărțiți în aceeași locație.
DataType
Tipul de analiză a textului pe care îl utilizați - poate fi xlDelimitat (implicit dacă este omis) sau xlFixedWidth.
TextQualifier
Dacă aveți ghilimele (simple sau duble) în jurul fiecărui câmp din textul pe care îl împărțiți, trebuie să indicați dacă acestea sunt simple sau duble.
ConsequtiveDelimiter
Acest lucru este fie adevărat, fie fals și îi spune lui VBA să ia în considerare 2 dintre aceleași delimitatori împreună ca și când ar fi 1 delimitator.
Tab
Aceasta este fie Adevărat de Fals, implicit este Fals - aceasta spune VBA că datele sunt delimitate de o filă.
Punct şi virgulă
Aceasta este fieAdevărat de Fals, implicit este Fals - aceasta spune VBA că datele sunt delimitate de un punct și virgulă.
Spaţiu
Aceasta este fie Adevărat de Fals, implicit este Fals - aceasta spune VBA că datele sunt delimitate de un spațiu.
Alte
Aceasta este fie Adevărat de Fals, implicit este Fals. Dacă setați acest lucru la True, atunci următorul argument, OtherChar trebuie specificat.
OtherChar
Acesta este caracterul prin care textul este separat (de exemplu: sau | de exemplu).
FieldInfo
Aceasta este o matrice care conține informații despre tipul de date care sunt separate. Prima valoare din matrice indică numărul coloanei din date, iar a doua valoare indică constanta pe care urmează să o utilizați pentru a descrie tipul de date de care aveți nevoie.
Un exemplu de pentru 5 coloane cu tipuri de date de text, numere și date ar putea fi:
Array (Array (1, xlTextFormat), Matrice (2, xlTextFormat), Matrice (3, xlGeneralFormat), Matrice (4, xlGeneralFormat), Array (5, xlMDYFormat))
Un alt mod de a stabili acest lucru este:
Array (Array (1, 2), Array (2, 2), Array (3, 1), Array (4, 1), Array (5, 3))
Numerele din a doua coloană sunt valorile constantelor în care constanta xlTextFormat are o valoare de 2, xlGeneralFormat (implicit) are o valoare de 1 și xlMDYFormat are o valoare de 3.
Separator zecimal
Puteți specifica separatorul zecimal la care trebuie să utilizeze VBA dacă există numere în date. Dacă este omis, va utiliza setarea sistemului, care este de obicei o perioadă.
Mii Separator
Puteți specifica separatorul de mii pe care trebuie să îl utilizeze VBA dacă există date în date. Dacă este omis, va utiliza setarea sistemului, care este de obicei o virgulă.
TrailingMinusNumbers
Acest argument este în mare măsură compatibilitatea datelor care sunt generate de sisteme mai vechi în care un semn minus era adesea după număr și nu înainte. Ar trebui să setați acest lucru la True dacă numerele negative au semnul minus în spatele lor. Valoarea implicită este falsă.
Conversia textului în coloane
Următoarea procedură va converti datele Excel de mai sus în coloane.
12345678910111213141516 | Sub TextToCol1 ()Interval („A1: A25”). TextToColumns _Destinație: = Interval ("A1: A25"),DataType: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutivDelimitator: = Adevărat, _Filă: = Fals, _Punct și virgulă: = False, _Coma: = False,Spațiu: = Adevărat, _Altele: = Fals, _FieldInfo: = Array (Array (1, 1), Array (2, 1), Array (3, 1), Array (4, 1), Array (5, 1)), _Separator zecimal: = "." , _Mii Separator: = ",", _TrailingMinusNumbers: = AdevăratSfârșitul Sub |
În procedura de mai sus am completat toți parametrii. Cu toate acestea, mulți dintre parametri sunt setați la false sau la setările implicite și nu sunt necesare. O versiune mai curată a procedurii de mai sus este prezentată mai jos. Trebuie să utilizați numele parametrilor pentru a indica ce parametri folosim.
1234567 | Sub TextToCol2 ()Interval („A1: A25”). TextToColumns _DataType: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutivDelimitator: = Adevărat, _Spațiu: = Adevărat,Sfârșitul Sub |
Există doar 4 parametri care sunt efectiv necesari - datele sunt delimitate printr-un ghilimel dublu, doriți ca ghilimelele consecutive să fie tratate ca unul și datele să fie separate printr-un spațiu!
Pentru o linie de cod și mai rapidă, am putea omite numele parametrilor, dar atunci ar trebui să punem virgule pentru a salva locul parametrului. Trebuie doar să puneți informații până la ultimul parametru pe care îl utilizați - în acest caz Spațiul care separă datele care este al 8-lea parametru.
123 | Sub TextToCol3 ()Gama („A1: A25”). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueSfârșitul Sub |
După ce executați oricare dintre procedurile de mai sus, datele vor fi separate conform graficului de mai jos.