VBA -teksti sarakkeisiin

Sisällysluettelo

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.

wave wave wave wave wave