Kun työskentelee VBA Excel, saatat olla tarve jakaa merkkijono osiin perustuva erotin.
esimerkiksi, jos sinulla on osoite, voit käyttää VBA-Split toiminto saada eri osissa-osoite, jotka on erotettu toisistaan pilkulla (, joka olisi erotin tässä tapauksessa).
SPLIT on sisäänrakennettu merkkijono Excel VBA, jonka voit käyttää, jakaa merkkijonon perusteella erotin.,
Tämä Opetusohjelma Kattaa:
Excel VBA-SPLIT – Toiminto- Syntaksia
Split ( Expression, , , )
- Lauseke: Tämä on merkkijono, jonka haluat jakaa perustuva erotin. Esimerkiksi osoiteesimerkin tapauksessa koko osoite olisi ”ilmaisu”. Jos tämä on nolla-pituus merkkijono ( ”” ) SPLIT funktio palauttaisi tyhjä array.
- Erotin: Tämä on valinnainen argumentti. Tämä on erotin, jota käytetään ”ilmaisun” argumentin jakamiseen., Jos osoite esimerkiksi pilkku on erotin, jota käytetään jakaa osoitteen eri osat. Jos et määritä tätä argumenttia, välilyönti pidetään oletuksena erotin. Jos annat nollapituisen merkkijonon (””), funktio palauttaa koko ’lausekkeen’ merkkijonon.
- Limit: tämä on valinnainen argumentti. Täällä voit määrittää niiden alustojen kokonaismäärän, jotka haluat palauttaa. Esimerkiksi, jos haluat vain palauttaa kolme ensimmäistä merkkijonoa päässä ’Ilmaisun’ argumentti, tämä olisi 3., Jos et määritä tätä argumenttia, oletusarvo on -1, joka palauttaa kaikki merkkijonoa.
- Vertaa: Tämä on valinnainen argumentti. Täällä voit määrittää, minkä tyyppinen vertailu haluat SPLIT-toiminnon suorittavan substraatteja arvioitaessa. Seuraavat vaihtoehdot ovat saatavilla:
- Kun Vertaa on 0: Tämä on Binary vertailu. Tämä tarkoittaa, että jos rajaaja on tekstijono (sanotaan ABC), niin tämä olisi case-herkkä. ”ABC” ei olisi yhtä kuin ”abc”.
- Kun Vertaa on 1: Tämä on Tekstin vertailu., Tämä tarkoittaa, että jos rajaaja on tekstijono (sanotaan ABC), niin vaikka ”ilmaisun” merkkijonossa olisi ”abc”, sitä pidettäisiin rajaajana.
nyt kun olemme käsitelleet JAKOFUNKTION alkeet, katsotaan muutama käytännön esimerkki.
Esimerkki 1 – Split Lauseen
Oletetaan, että minulla on teksti – ”Nopea Ruskea Kettu Hyppää Laiskan Koiran Yli”.
voin käyttää jaettua funktiota saadakseen tämän lauseen jokaisen sanan erilliseksi kappaleeksi jonossa.,
alla koodi olisi tämä:
Sub SplitWords()Dim TextStrng As StringDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result() = Split(TextStrng)End Sub
Kun koodi ei ole mitään hyötyä, se auttaa sinua ymmärtämään, mitä Split-toiminnon VBA ei.
Jakofunktio jakaa tekstijonon ja määrittää jokaisen sanan Tulosryhmälle.
Joten tässä tapauksessa:
- Tulos(0) tallentaa arvo ””
- Tulos(1) tallentaa arvo ”Nopea”
- Tulos(2) kaupat arvo ”Ruskea” ja niin edelleen.
tässä esimerkissä on määritelty vain ensimmäinen argumentti – joka on jaettava teksti., Koska rajaajaa ei ole määritelty, se ottaa oletusrajaajaksi avaruusmerkin.
Tärkeä huomautus:
- VBA-jakofunktio Palauttaa matriisin, joka alkaa tukikohdasta 0.
- Kun tulos SPLIT-toiminto on määritetty joukko, että array on ilmoitettu String tietotyyppi. Jos ilmoitat sen variantti tietotyyppi, se näyttää Tyyppi epäsuhta virhe). Yllä olevassa esimerkissä huomaa, että olen ilmoittanut tuloksen() Merkkijonotyypiksi.,
Esimerkki 2 – Laskea, kuinka monta Sanaa Lauseessa
Voit käyttää SPLIT-toiminto saada kokonaismäärä sanoja lauseessa. Juju tässä on laskea useita elementtejä array, että saat kun jakaa tekstin.
alla Oleva koodi näyttää viestin laatikko sanamäärä:
Sub WordCount()Dim TextStrng As StringDim WordCount As IntegerDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result = Split(TextStrng)WordCount = UBound(Result()) + 1MsgBox "The Word Count is " & WordCountEnd Sub
tässä tapauksessa UBound-toiminto kertoo, yläraja array (eli maksimi määrä elementtejä array on)., Koska perus array on 0, 1 lisätään saada yhteensä word count.
Voit käyttää samanlaista koodia luoda mukautetun toiminnon VBA, joka vie tekstin syötteenä ja palauttaa sanamäärä.
alla oleva koodi luo tämän funktion:
kun se on luotu, voit käyttää WordCount-funktiota kuten mitä tahansa muuta säännöllistä funktiota.
Tämän toiminnon hoitaa myös johtava, perään ja kaksinkertainen välilyöntejä sanojen välissä. Tämä on tehty mahdolliseksi käyttämällä VBA-koodin TRIMMAUSTOIMINTOA.,
jos haluat oppia lisää siitä, miten tämä kaava toimii laskea sanojen määrä lauseessa tai haluavat oppia ei-VBA kaava tapa saada sanamäärä, tutustu tämän opetusohjelman.
Esimerkki 3 – Käyttämällä Erotin Muu kuin Välilyönti
edellisessä kaksi esimerkkiä, meillä on käytössä vain yksi argumentti SPLIT-toiminto, ja loput olivat oletuksena argumentteja.
kun käytät jotain muuta rajaajaa, sinun täytyy määrittää se JAKOKAAVASSA.,
alla code, SPLIT-funktio palauttaa matriisin, joka perustuu pilkkua erottimena, ja sitten näyttää viestin, jossa jokainen sana on omalla rivillään.
edellä koodi, olen käyttänyt Seuraavan silmukan läpi jokainen elementti ”Tulos” array määrittää ’DisplayText’ muuttuja.
Esimerkki 4 – Jakaa Osoitteen kolmeen osaan
SPLIT-toiminto, voit määrittää, kuinka monta numeroa halkeaa haluat saada. Jos en esimerkiksi määrittele mitään, jokainen erotin käytettäisiin merkkijonon jakamiseen.,
mutta jos määrittelen rajaksi 3, merkkijono jaetaan vain kolmeen osaan.
esimerkiksi, jos minulla on seuraavaan osoitteeseen:
2703 Winifred Way, Indianapolis, Indiana, 46204
en voi käyttää Split-toiminnon VBA jakaa tämän osoitteen kolmeen osaan.
Se jakaa kaksi ensimmäistä perustuu pilkku erotinmerkkinä ja jäljellä osa tulee kolmas osa array.,
alla Oleva koodi näyttäisi osoite, kolme eri riviä viestin ruutu:
Yksi käytännön käyttötarkoituksia tämä voi olla kun haluat jakaa yhden linja-osoite muodossa esitetty viesti ruutuun. Sitten voit luoda mukautetun funktion, joka palauttaa osoitteen jaettu kolmeen osaan (kunkin osan uusi rivi).
seuraava koodi tekisi tämän:
kun tämä koodi on moduulissa, voit käyttää työkirjan funktiota (ThreePartAddress) kuten mitä tahansa muuta Excel-funktiota.,
Tämä toiminto vaatii yhden parametrin – solun viittaus, joka on osoite.
Huomaa, että tuloksena osoite näkyvät kolme eri riviä, sinun täytyy hakea wrap text format soluihin (se on Koti-välilehden Tasaus-ryhmässä). Jos Rivitä Teksti’ muoto ei ole käytössä, näet koko osoite kuin yhden rivin.
Esimerkki 5 – Saada Kaupungin Nimi Osoite
Split-toiminnon VBA, voit määrittää, mikä osa tuloksena matriisi, jota haluat käyttää.,
oletetaan esimerkiksi, olen halkaisu osoitteeseen perustuu pilkku erottimena:
2703 Winifred Way, Indianapolis, Indiana, 46204
tuloksena array näyttäisi jotain, kuten alla:
{"2703 Winifred Way", "Indianapolis", "Indiana", "46204"}
Koska tämä on array, en voi valita näytettäväksi tai palata tiettyyn osa tätä array.
Alla on koodi mukautetun toiminnon, jossa voit määrittää numeron, ja se tulee palauttaa, että elementti array. Esimerkiksi, jos haluan valtion nimi, voin määrittää 3 (koska se on kolmas elementti array).,
yllä oleva funktio ottaa kaksi argumenttia, soluviittauksen, jolla on osoite ja elementin numero, jonka haluat palauttaa. Jakofunktio jakaa osoiteelementit ja antaa ne Tulosmuuttujalle.
sitten se palauttaa alkuaineen numeron, jonka määritit toiseksi argumentiksi. Huomaa, että koska pohja on 0, ElementNumber-1, käytetään palauttamaan oikean osoitteen osa.
jos haluat kaupungin nimen, voit käyttää 2 kuten toinen väite. Jos käytät lukua, joka on suurempi kuin elementtien kokonaismäärä, se palauttaisi # – arvon! virhe.
Voit edelleen yksinkertaistaa koodi kuten alla:
edellä koodi, sen sijaan käyttää Tulos-muuttuja, se vain palauttaa määritetyn elementin numero.
joten jos olet jakautunut(”Hyvää huomenta”)(0), se palauttaisi vain ensimmäisen elementin, joka on ”hyvä”.,
samalla tavalla, yllä olevassa koodissa se palauttaa vain määritetyn alkuaineen numeron.
Voit Myös Seuraavat Excel Tutorials:
- Excel VBA-InStr-Funktio – Selitti Esimerkkejä.
- tietojen lajittelu Excelissä VBA: n (a Step-by-Step Guide) avulla.
- 7 Amazing Things Excel Teksti sarakkeisiin voi tehdä puolestasi.
- miten sana lasketaan Excelissä.
- VBA TRIM-toiminto.