Substring on yksi kaikkien ohjelmointikielten suosituimmista funktioista. Se helpottaa tehtäviäsi, kun käsittelet merkkijonoja. Kuten nimestä voi päätellä, substring-funktio jakaa merkkijonon eri osiin tiettyjen kriteerien perusteella.
VBA:n Substring-funktioita on useita. Käytännön tilanteissa nämä substring-funktiot voivat olla varsin hyödyllisiä merkkijonon osan poimimisessa.
Tänään tässä postauksessa selitän kaikki VBA:n substring-funktiot, joita voit käyttää Excel-makroissa:
Sisällysluettelo
LEFT Substring-funktio:
Excel VBA:n LEFT-funktiota käytetään tietyn merkkimäärän hakemiseen merkkijonon alusta. LEFT-funktion syntaksi on seuraava:
LEFT (teksti_merkkijono, pituus)
- Tässä ’teksti_merkkijono’ viittaa syötettyyn merkkijonoon, joka erotetaan.
- ja ’pituus’ viittaa poimittavien merkkien määrään.
Esimerkkejä:
Vasen ("Exceltrick", 5) 'antaa tulokseksi "Excel"
Vasen ("SomeText", 4) 'antaa tulokseksi "Some"
Huomautus: Sen sijaan, että käyttäisit kovakoodattua merkkijonoa ensimmäisenä argumenttina, voit myös noutaa ’text_string’-merkkijonon excel-taulukosta, kuten esim. seuraavasta: ActiveSheet.Range(”A1”).
Oikea Substring- funktio:
Oikea merkkijonofunktio Excel VBA:ssa on juuri päinvastainen kuin vasen funktio. Se palauttaa määritetyn määrän merkkejä tekstijonon lopusta. RIGHT-funktion syntaksi on seuraava:
Right (teksti_merkkijono, pituus)
- Tässä ’teksti_merkkijono’ viittaa syötettyyn merkkijonoon, joka erotetaan toisistaan.
- Ja ’pituus’ viittaa irrotettavien merkkien lukumäärään, mutta irrottaminen aloitetaan oikealta puolelta.
Esimerkki:
Oikea ("Exceltrick", 5) 'antaa tulokseksi "temppu"
Oikea ("SomeText", 4) 'antaa tulokseksi "Teksti"
Huomautus: Sen sijaan, että käyttäisit kovakoodattua merkkijonoa ensimmäisenä argumenttina, voit myös noutaa ’teksti_merkkijonon’ excel-taulukkosivultasi muodossa ActiveSheet.Range(”A1”).
MID Substring-funktio:
MID on paljon parempi funktio kuin kaksi ensimmäistä, sillä se antaa sinulle mahdollisuuden määrittää uutetun merkkijonon alku- ja loppupisteen. VBA:n MID Substring-funktion syntaksi on seuraava:
Mid(teksti_merkkijono, alku_asento, pituus)
- Tässä ’teksti_merkkijono’ viittaa syötettyyn merkkijonoon, joka halutaan erottaa.
- ’start_position’ viittaa numeeriseen sijaintiin, josta erottelu aloitetaan.
- Ja ’length’ viittaa erotettavien merkkien määrään.
Esimerkki:
MID ("Exceltrick", 2,4) 'antaa tulokseksi "celt"
MID ("SomeText", 4,4) 'antaa tulokseksi "Teksti"
Huomautus: Sen sijaan, että käyttäisit kovakoodattua merkkijonoa ensimmäisenä argumenttina, voit myös noutaa ’teksti_merkkijonon’ excel-taulukkosi tiedostosta muodossa ActiveSheet.Range(”A1”).
SPLIT Substring-funktio:
SPLIT-funktio on toinen VBA-funktio, jota voidaan käyttää merkkijonon alimerkkaamiseen tai jakamiseen. SPLIT-funktio voi olla erittäin kätevä, kun jaat merkkijonon useampaan osaan erottimen perusteella. Split-funktion syntaksi on seuraava:
Split (text_string, Delimiter, limit, Compare)
- Tässä ’text_string’ viittaa syötettyyn merkkijonoon, joka halutaan erottaa toisistaan.
- ’Delimiter’ viittaa rajamerkkiin, joka jakaa merkkijonon osiin. Tämä on valinnainen argumentti, jos se jätetään tyhjäksi, oletetaan välilyöntimerkin ” ” olevan oletusarvoinen erotinmerkki.
- ’limit’ viittaa merkkijonon osien enimmäismäärään, joihin merkkijono jaetaan. Se on myös valinnainen argumentti, oletusarvo on (-1), mikä tarkoittaa, että alimerkkijonon pitäisi tapahtua jokaisessa kohdassa, jossa rajaaja kohdataan.
- ’compare’ on valinnainen numeerinen arvo, joka määrittää vertailun, jota käytetään alimerkkijonoja arvioitaessa.
Esimerkki:
Esimerkiksi sinulla on tekstijono ”Tämä on tekstijono” ja nyt sinun on pilkottava tämä merkkijono yksittäisiksi sanoiksi, joten tässä tapauksessa käytät erottimena välilyöntiä ” ”. Split-funktiota käytetään seuraavasti:
Split ("Tämä on tekstijono", " ")
Tämän split-funktion tulos on sanojen joukko: ”Tämä” ”on” ”a” ”teksti” ”merkkijono”.
Suositeltavaa luettavaa: VBA Split Function
VBA Substring Macro Example:
Alhaalla olen luonut makron, joka havainnollistaa kaikki VBA-ohjelmoinnissa käytettävissä olevat osajonotekniikat. Tämä on yksinkertainen ja itsestään selvä makro, tässä olen yksinkertaisesti jakanut tekstijonon edellä kuvaamillani neljällä menetelmällä.
Alla on koodi, jota olen käyttänyt tässä makrossa:
Sub BreakStrings()
'Left-funktio
a = Left("Excel-tempputeksti", 5)
'Right-funktio
b = Right("Excel-tempputeksti", 11)
'Mid-funktio
c = Mid("Excel-tempputeksti", 1, 11)
'Split-funktio
d = Split("Excel Trick Text", " ")
For Each wrd In d
strg = strg & wrd & ", "
Next
'Tulosten näyttäminen mesage-ruutuun
MsgBox "Left: " & a & vbNewLine & "Right: " & b & vbNewLine & "Mid: " & c & vbNewLine & "Split: " & strg
End Sub
Tässä oli siis kyse VBA:n osajonofunktioista. Jaa näkemyksesi aiheeseen liittyen.