VBA Vaihda merkkijono | Kuinka korvata merkkijonon teksti VBA: n avulla?

Excel VBA Korvaa merkkijono

Korvaa on sekä laskentataulukko- että VBA-toiminto. Tämä toiminto auttaa meitä korvaamaan merkkijonon tietyn sanan toisella merkkijonolla. Se toimii samalla tavalla kuin VBA: n Substitute-funktio.

Vaikka käsittelemme testimerkkijonoja tai tekstidatan arvoja, on itsestään selvää, että jotain korvataan tai korvataan jollakin muulla, yhdistämällä kaksi solutietoa yhdeksi tai jakamalla yksi solutieto useisiin asioihin. Nämä ovat kaikki yleisiä tehtäviä, joita teemme päivittäin työpaikallamme.

Joten miten korvataan yksi merkkijonon sana toisella sanalla? Esimerkiksi jos merkkijono on "Intia on kehittyvä maa ja Intia Aasian maassa", meidän on korvattava tästä merkkijonosta sana "Intia" ja muutettava sanaksi "Bharath".

Tämä on mahdollista käyttämällä Korvaa-toimintoa. Tässä artikkelissa näytämme, kuinka korvata merkkijonot VBA-koodauksessa.

Vaihda toiminto

  • Lauseke: Tämä ei ole muuta kuin alkuperäinen merkkijonoarvo, josta yritämme korvata jotain jollakin. Esimerkiksi alla on lauseke - "Intia on kehitysmaa ja Intia Aasian maassa"
  • Etsi merkkijono: Mikä on merkkijono, jota yritämme korvata. Esimerkiksi lausekkeen merkkijonossa yritämme korvata sanan "Intia".
  • Korvaa merkkijono: Mikä on korvaava merkkijono, jolla korvataan Etsi merkkijono ? Joten tässä tapauksessa yritämme korvata sanan "Intia" sanalla "Bharath".
  • [Käynnistä]: Tämä on valinnainen parametri. Yllä olevassa merkkijonossa (lauseke) meillä on kaksi sanaa "Intia", joten mistä Find-merkkijonon sijainnista meidän on aloitettava korvausprosessi. Esimerkiksi, jos sanomme 2, se alkaa korvata sanan "Intia" toisesta paikasta eteenpäin.
  • [Laskuri]: Jos Find-merkkijono esiintyy useita kertoja lausekkeessa, kuinka monta sanaa meidän on korvattava.

Esimerkiksi, jos sana "Intia" esiintyy viisi kertaa ja jos annat laskun 3: ksi, se korvaa vain kolme ensimmäistä "Intia" -sanaa.

Kuinka korvata merkkijonon teksti VBA: n avulla?

Voit ladata tämän VBA Replace String Excel -mallin täältä - VBA Replace String Excel -malli

Esimerkki 1

Yritämme nyt korvata sana "Intia" sanalla "Bharath" alla olevasta merkkijonosta.

"Intia on kehitysmaa ja Intia Aasian maassa"

Aloita ensin Excel-makromenettely.

Koodi:

 Sub Replace_Example () End Sub 

Määritä VBA-muuttuja merkkijonoksi.

Koodi:

 Sub Replace_Example () Dim NewString merkkijonona End Sub 

Tässä muuttujassa näytetään uusi merkkijonoarvo sen jälkeen, kun sana "Intia" on korvattu sanalla "Bharath". Tälle muuttujalle avaa Korvaa-toiminto.

Tämän toiminnon ensimmäinen argumentti on ”Lauseke” eli mistä merkkijonosta yritämme korvata sanan, joten kopioi ja liitä merkkijono ”Intia on kehitysmaa ja Intia Aasian maassa”.

Seuraava argumentti on "Etsi merkkijono" eli mikä sana meidän on korvattava eli "Intia".

Seuraava argumentti on "Korvaa merkkijono", eli millä merkkijonolla meidän on korvattava sana "Intia" eli "Bharath".

Ok, sivuuttaa jäljellä olevat argumentit. Näytä tulos nyt viestiruudussa.

Koodi:

 Sub Replace_Example () Himmennä NewString merkkijonona NewString = Replace ("Intia on kehitysmaa ja Intia on Aasian maa", "Intia", "Bharath") MsgBox NewString End Sub 

Suoritetaan koodi käyttämällä F5-näppäintä tai manuaalisesti ja katsotaan uusi merkkijonotulos.

Ok, katso yllä olevaa tulosta missä tahansa, missä meillä on sana "Intia", se on korvattu sanalla "Bharath".

Esimerkki 2

Nyt näemme, kuinka samaa koodia käytetään muuttujien kanssa. Katso alla oleva koodi.

Koodi:

 Sub Replace_Example1 () Dim NewString as String Dim MyString as String Dim FindString as String Dim ReplaceString As String MyString = "Intia on kehitysmaa ja Intia on Aasian maa" FindString = "Intia" ReplaceString = "Bharath" NewString = Korvaa (MyString , FindString, ReplaceString) MsgBox NewString End Sub 

Edellä mainitussa koodissa olen ilmoittanut kolme ylimääräistä muuttujaa.

 Dim MyString merkkijonona Dim FindString merkkijonona Dim ReplaceString merkkijonona 

Näille muuttujille olen määrittänyt arvot, sen sijaan että toimittaisimme lausekemerkkijonon, Etsi merkkijono ja Korvaa merkkijono , toimitamme vain muuttujan Korvaa-toiminnolle.

Tämä koodi antaa myös saman tuloksen, mutta ainoa ero on, että olemme käyttäneet muuttujia funktion suorien arvojen toimittamisen sijaan.

Esimerkki 3

Oletetaan, että haluat korvata sanan "Intia" vain toisesta sijainnista, meidän on käytettävä Korvaa-toimintoparametriä ["Käynnistä"]. Katso tietosi alla olevasta koodista.

Koodi:

 Sub Replace_Example2 () Dim NewString as String Dim MyString as String Dim FindString as String Dim ReplaceString As String MyString = "Intia on kehitysmaa ja Intia on Aasian maa" FindString = "Intia" ReplaceString = "Bharath" NewString = Korvaa (MyString , FindString, ReplaceString, Start: = 34) MsgBox NewString End Sub 

Ainoa ylimääräinen asia, jonka olemme lisänneet edellisestä koodista, on “Start” -parametri 34. Käynnistä sitten koodi ja katso tulos.

Nyt voimme nähdä vain merkkijonon 34. merkkijonon jälkeen, kun ”India” korvataan merkillä ”Bharath”.

Esimerkki 4

Nyt esimerkiksi, jos haluamme korvata vain sanan "Intia" ensimmäisen esiintymisen sanalla "Bharath", meidän on käytettävä Korvaa-funktion parametria ["Lasku"] .

Alla on koodi sinulle.

Koodi:

 Sub Replace_Example3 () Dim NewString as String Dim MyString as String Dim FindString as String Dim ReplaceString As String MyString = "Intia on kehitysmaa ja Intia on Aasian maa" FindString = "Intia" ReplaceString = "Bharath" NewString = Korvaa (MyString , FindString, ReplaceString, Count: = 1) MsgBox NewString End Sub 

Suorita koodi manuaalisesti tai F5-avaimen avulla ja katso tulos.

Kuten yllä voit nähdä, se on korvannut vain sanan "Intia" ensimmäisen esiintymisen "Bharath": lla ja toinen esiintymä pysyy samana.

Muistettavaa täällä

  • Korvaa on merkkijonofunktioperhe VBA: ssa.
  • VBA: ssa korvaava toiminto korvaa kaikki toimitetut sanat korvatulla merkkijonolla, jos count-parametria ei ole määritetty.
  • Käynnistysparametri poistaa toimitettujen merkkien määrän ja näyttää jäljellä olevan tuloksen.

$config[zx-auto] not found$config[zx-overlay] not found