Tämä opetusohjelma näyttää, kuinka yhden solun tekstijono voidaan muuntaa useaan sarakkeeseen käyttämällä VBA: n Range TextToColumns -menetelmää
Teksti sarakkeisiin
The Alue.TextToColumns menetelmä VBA: ssa on tehokas työkalu esimerkiksi teksti- tai csv -tiedostoista tuotujen tietojen puhdistamiseen.
Harkitse seuraavaa laskentataulukkoa.
Tiedot ovat tulleet Exceliin yhdessä sarakkeessa, ja ne on erotettu lainausmerkeillä.
Voit erottaa tiedot sarakkeisiin käyttämällä Range TextToColumns -menetelmää.
TextToColumns -syntaksi
ilmaisu.TextToColumns (Määränpää, Tietotyyppi, TextQualifier, PerättäinenDelimiter, Välilehti, Puolipiste, Pilkku, Avaruus, Muut, MuutChar, FieldInfo, Desimaalierotin, Tuhannet erotin, JäljelläMinusNumbers)
Ilmaisu
Tämä on solualue, jonka haluat jakaa - esim. Alue (“A1: A23”).
Kaikki TextToColumns -menetelmän argumentit ovat valinnaisia (niiden ympärillä on hakasulkeet).
Määränpää
Minne haluat tuloksen sijoitettavan - usein ohitat tiedot ja jaat ne samaan paikkaan.
Tietotyyppi
Käyttämäsi tekstin jäsennystyyppi - se voi olla joko xlRajattu (oletus, jos se jätetään pois), tai xlFixedWidth.
TextQualifier
Jos jokaisen jaettavan tekstin kentän ympärillä on lainausmerkit (yksi tai kaksinkertainen), sinun on ilmoitettava, ovatko ne yksittäisiä vai kaksinkertaisia.
SeuraavaDelimiter
Tämä on joko totta tai valhetta ja kehottaa VBA: ta harkitsemaan kahta samaa erotinta yhdessä kuin jos se olisi yksi erotin.
Välilehti
Tämä on joko Totta / Väärä, oletus on Väärä - tämä kertoo VBA: lle, että tiedot rajataan välilehdellä.
Puolipiste
Tämä on jokoTotta / Väärä, oletus on Väärä - tämä kertoo VBA: lle, että tiedot rajataan puolipisteellä.
Avaruus
Tämä on joko Totta / Väärä, oletus on Väärä - tämä kertoo VBA: lle, että tiedot on rajattu välilyönnillä.
Muut
Tämä on joko Totta / Väärä, oletus on Väärä. Jos asetat tämän arvoksi Tosi, seuraava argumentti MuutChar on täsmennettävä.
MuutChar
Tämä on merkki, jolla teksti erotetaan (esim .: tai | esimerkiksi).
FieldInfo
Tämä on taulukko, joka sisältää tietoja erotettavista tiedoista. Taulukon ensimmäinen arvo osoittaa datan sarakkeen numeron ja toinen arvo osoittaa vakion, jota aiot käyttää halutun tietotyypin kuvaamiseen.
Esimerkki viidestä sarakkeesta, joissa on tietotyyppejä tekstiä, numeroita ja päivämääriä, voisi olla:
Array (Array (1, xlTextFormat), Array (2, xlTextFormat), Array (3, xlYleinenFormat), Array (4, xlYleinenFormat), Array (5, xlMDYFormat))
Toinen tapa määrittää tämä on:
Array (Array (1, 2), Array (2, 2), Array (3, 1), Array (4, 1), Array (5, 3))
Toisen sarakkeen numerot ovat vakioiden arvoja, joissa vakion xlTextFormat arvo on 2, xlGeneralFormat (oletus) on 1 ja xlMDYFormat on 3.
Desimaalierotin
Voit määrittää desimaalierottimen, jota VBA: n on käytettävä, jos tiedoissa on numeroita. Jos se jätetään pois, se käyttää järjestelmäasetusta, joka on yleensä piste.
Tuhannet erotin
Voit määrittää tuhannen erottimen, jota VBA: n on käytettävä, jos tiedoissa on numeroita. Jos se jätetään pois, se käyttää järjestelmäasetusta, joka on yleensä pilkku.
JäljelläMinusNumbers
Tämä argumentti koskee suurelta osin sellaisten tietojen yhteensopivuutta, jotka on luotu vanhemmista järjestelmistä, joissa miinusmerkki oli usein numeron jälkeen eikä ennen. Aseta tämä arvoksi Tosi, jos negatiivisten numeroiden takana on miinusmerkki. Oletusarvo on False.
Tekstin muuntaminen sarakkeiksi
Seuraava menettely muuntaa yllä olevat Excel -tiedot sarakkeiksi.
12345678910111213141516 | Sub TextToCol1 ()Alue ("A1: A25"). TextToColumns _Kohde: = Alue ("A1: A25"),Datatyyppi: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutiveDelimiter: = Totta, _Välilehti: = epätosi, _Puolipiste: = väärä, _Pilkku: = Väärä,Välilyönti: = Totta, _Muu: = väärä, _FieldInfo: = Array (Array (1, 1), Array (2, 1), Array (3, 1), Array (4, 1), Array (5, 1)), _DecimalSeparator: = "." , _ThousandsSeparator: = ",", _TrailingMinusNumbers: = TottaEnd Sub |
Yllä olevassa menettelyssä olemme täyttäneet kaikki parametrit. Monet parametrit on kuitenkin asetettu arvoon false tai oletusasetukseen, eivätkä ne ole välttämättömiä. Alla on puhtaampi versio yllä olevasta menettelystä. Sinun on käytettävä parametrien nimiä osoittamaan, mitä parametreja käytämme.
1234567 | Sub TextToCol2 ()Alue ("A1: A25"). TextToColumns _Datatyyppi: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutiveDelimiter: = Totta, _Väli: = Totta,End Sub |
Todellisuudessa vaaditaan vain 4 parametria - tiedot rajataan lainausmerkillä, haluat, että peräkkäiset lainausmerkit käsitellään yhtenä ja tiedot erotetaan välilyönnillä!
Vielä nopeampaa koodiriviä varten voimme jättää parametrien nimet pois, mutta sitten meidän on syötettävä pilkkuja parametrin paikan tallentamiseksi. Sinun tarvitsee vain laittaa tiedot viimeiseen käyttämääsi parametriin - tässä tapauksessa tilaan, joka erottaa tiedot, joka on kahdeksas parametri.
123 | Sub TextToCol3 ()Alue ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueEnd Sub |
Kun olet suorittanut jonkin yllä olevista toimenpiteistä, tiedot erotetaan alla olevan kuvan mukaisesti.