Jos kohtaat tilanteen, jossa tarvitset vain ensimmäisen sanan solun jokaisella rivillä koko merkin sijasta, sinun on luettava tämä artikkeli. Seuraava opetusohjelma auttaa sinua hakemaan vain ensimmäisen sanan Excelin VBA -koodin kautta.
Tässä artikkelissa keskitymme siihen, miten ensimmäinen sana pidetään vain solun jokaisella rivillä, joka on erotettu puolipisteellä makrokoodien avulla.
Kysymys: Datassa, jossa työskentelen, on joskus useita rivejä kussakin solussa, ja haluan poimia vain ensimmäisen sanan.
Alkuperäinen kysymys löytyy täältä
Seuraavassa on tilannekuva syöttötekstistä (ennen taulukkoa)
Seuraavassa on tilannekuva sarakkeesta A syötetystä tekstistä (arkin jälkeen) ja vaatii tulostuksen sarakkeessa B; katso alla oleva kuva:
Koodin saaminen; meidän on noudatettava alla olevia vaiheita VB -editorin käynnistämiseksi
- Napsauta Kehittäjä -välilehteä
- Valitse koodiryhmästä Visual Basic
- Kopioi alla oleva koodi vakiomoduuliin
Toiminto FirstWordOnly (rng As Range) Dim Arr () Varianttina Dim Count kokonaislukuna Dim i Integer Count = Len (rng) - Len (Replace (rng, Chr (10), "")) Jos Count> 0 Sitten ReDim Arr (0 laskea) i = 0 laskea Jos i = 0 niin Arr (i) = Vasen (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Sitten j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Muu j = InStr (j + 1, rng, Chr (10)) Arr (i) = Keski (rng, j + 1, InStr (j, rng, "") - j) Lopeta, jos seuraava FirstWordOnly = Liity (Arr, ";") Else If InStr (1, rng, "")> 0 Sitten FirstWordOnly = Vasen (rng, InStr (1, rng, "")) Else FirstWordOnly = rng End Jos End Jos End -toiminto
Nyt VBA -koodi on käyttövalmis; käytämme juuri luotua käyttäjän määrittämää toimintoa eli "FirstWordOnly" -toimintoa ennen taulukkoa.
- Tuloksen saamiseksi UDF: llä solussa B2 kaava on
- = FirstWordOnly (A2)
Koodin selitys:
Yllä olevassa koodissa olemme käyttäneet COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA toimintoja.
- 'Len (rng)'; tämä tarkistaa viittaamamme solun pituuden
- 'Korvaa (rng, Chr (10), "")'; Koodi tarkistaa Chr: n (10) eli rivinvaihdon jokaisella rivillä ja korvaa sitten lainausmerkillä (ei mitään)
- 'Count = Len (rng) - Len (Korvaa (rng, Chr (10), ""))'; Count tallentaa kunkin rivin pituuseron rivinvaihdon korvaamisen jälkeen
- Jos määrä> 0; tämä tarkistaa, onko laskennan pituus suurempi kuin nolla ja jos sen todetaan olevan nolla eli solu on tyhjä, IF -ehto ei suorita koodia. Voit tarkistaa tämän käyttämällä solua B5 = FirstWordOnly (A5) ja se palauttaa 0
- Jos solu ei ole tyhjä, For -silmukkaa käytetään IF -ehdolla, ja LEFT -funktiolla haemme ensimmäisen sanan
- JOIN -toiminto lisää puolipisteen loppuun, jos jokaisessa solussa on useita rivejä
Johtopäätös: UDF: n avulla voimme poistaa kaiken jokaisesta solurivistä paitsi ensimmäisen sanan VBA: n kautta. Tämä toiminto toimii kaikissa versioissa vanhasta uuteen eli Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.
Jos pidit blogistamme, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.
Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa, täydentää tai innovoida työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse