VBA InStrRev - Kuinka käyttää Excel VBA InStrRev -toimintoa?

Sisällysluettelo

Excel VBA INSTRREV

VBA INSTRREV -funktio, joka tarkoittaa 'merkkijonon taaksepäin' , palauttaa hakumerkkijonon (alimerkkijonon) ensimmäisen esiintymisen sijainnin toisessa merkkijonossa alkaen merkkijonon päästä (oikealta vasemmalle), jota etsimme haettava merkkijono.

INSTRREV- funktio alkaa etsiä haettavaa merkkijonoa merkkijonon päästä, jonka meidän on selvitettävä, mutta laskee sijainnin alusta. On vielä yksi INSTR VBA -toiminto (tarkoittaa 'merkkijonoa' ), joka myös etsii merkkijonoa toisesta merkkijonosta ja palauttaa sijainnin, mutta tämä toiminto aloittaa haun merkkijonon alusta, josta etsimme haettavaa merkkijonoa.

INSTRREV ja INSTR , molemmat ovat MS Excelin sisäänrakennettu String / Text VBA -toiminto . Voimme käyttää niitä kirjoittaessamme mitä tahansa makroa Microsoft Visual Basic Editorissa.

Syntaksi

Kuten voimme nähdä yllä olevasta kuvasta, on 2 pakollista ja 2 valinnaista argumenttia.

  • StringCheck As String: Tämä on pakollinen argumentti. Meidän on annettava merkkijono-lauseke.
  • StringMatch as String: Tämä argumentti vaaditaan myös. Meidän on määritettävä etsittävä merkkijonolauseke.
  • Aloita niin kauan = -1: Tämä on valinnainen argumentti. Määritämme numeerisen lausekkeen. Oletuksena se vie -1, mikä tarkoittaa, että haku alkaa viimeisestä merkkipaikasta. Jos määritämme minkä tahansa positiivisen arvon, kuten 80, se alkaa etsiä merkkijonon lopusta vasemmalla olevissa 80 merkissä.
  • Vertaa nimellä VbCompareMethod = vbBinaryCompare As Long: Tämä argumentti on valinnainen.

Voimme määrittää seuraavat arvot tälle argumentille.

Palautusarvot

  1. INSTRREV- funktio palauttaa arvon 0, jos merkkijonon tarkistus on nollan pituinen tai merkkijonoa ei löydy tai "aloitus" -argumentti> merkkijonon pituus .
  2. Tämä toiminto palauttaa arvon "tyhjä", jos merkkijonotarkistus tai merkkijono on "tyhjä".
  3. Jos merkkijono-ottelu on nolla, funktio palaa alkuun .
  4. Jos merkkijonotarkistus sisältää merkkijonovastaavuuden , funktio palauttaa sijainnin, josta ottelu löytyy.

Kuinka käyttää VBA INSTRREV -toimintoa?

Oletetaan, että meillä on tietoja elokuvien nimistä ja niiden ohjaajista. Haluamme jakaa ohjaajien nimet.

Meillä on tietoja 1201 rivillä. Jos teemme tämän tehtävän manuaalisesti, se vie paljon aikaa.

Tehdäkseen samoin käytämme VBA-koodia. Vaiheet ovat:

  • Meidän on napsautettava 'Visual Basic' -komentoa, joka on käytettävissä Kehittäjä- välilehden Code- ryhmässä , tai voimme painaa Alt + F11 avataksesi visuaalisen peruseditorin.
  • Tulemme lisää moduulin avulla valikon Lisää .
  • Luomme aliohjelman nimeltä SplittingNames.
  • Tarvitsemme 6 muuttujaa, yhden solujen arvojen tallentamiseen, joita käsittelemme. Toinen on merkkijonon ensimmäisen tilan sijainnin tallentaminen, kolmas merkkijonon viimeisen tilan sijainnin tallentaminen, neljäs viimeisen rivinumeron tallentamisen, viides ja kuudes rivin ja sarakkeen, joita käytämme tulostamaan arvot vierekkäin soluja.
  • Viimeisen käytetyn rivin selvittämiseksi meidän on käytettävä seuraavaa koodia.

Tämä koodi valitsee ensin solun B1 ja sitten viimeksi käytetyn solun samasta sarakkeesta, ja sitten määritämme solun rivinumeron LastRow-muuttujalle.

  • Nyt käsittelemään kaikkia B-sarakkeen soluja suoritamme 'for' -silmukan .
  • Tallennamme B-sarakkeen solujen arvon riviltä 2 riville 1201 yksi kerrallaan muuttujassa 's' muuttujien kanssa niiden manipuloimiseksi.
  • Meidän on asetettava muuttujan 'Sarake' arvoksi 3, koska meidän on kirjoitettava jaetut nimet kohtaan C ( kolmas sarake) ja sarake eteenpäin.
  • Jos merkkijono on vain yksi sana, mikä tarkoittaa, että merkkijonossa ei ole tilaa, niin haluamme itse merkkijonon tuotoksena. Tätä varten määritämme ehdon käyttämällä If- ja Else-lauseita tähtimerkillä (joka merkitsee yhtä tai useampaa merkkiä) seuraavasti:
  • Jos merkkijonossa on tilaa, haluamme jakaa merkkijonon. Tekemään samoin, olemme käyttäneet INSTR ja InStrRev toiminto sekä selvittää ensimmäisen tilan asentoon ja viimeinen tila asentoon, tässä järjestyksessä. Se auttaa meitä löytämään merkkijonon ensimmäisen ja viimeisen sanan.

INSTR-funktio ottaa argumentin seuraavasti:

Argument Details

  • Start: From which position to start.
  • String1: We need to give string expression being searched.
  • String2: We need to specify string expression being searched for.

Compared as VbCompareMethod: Specifying Comparing method. By default, it is binary compare.

  • We need to use the VBA LEFT function to extract left characters from the string. We have used ‘Last Space-1’ to get the left characters before the last space.

We need to use the RIGHT and LEN functions to extract the right characters from the string after the first space.

Macro is written. Now we just need to run the macro using the F5 key.

Code:

Sub SplittingNames () Himmennä merkkijonona Hämärä Ensimmäinen tila niin pitkä himmeä LastSPace kuin pitkä himmeä Viimeinen rivi niin pitkä himmeä rivi niin pitkä himmentävä sarake kuin pitkä arkki1. Alue ("B1"). Valitse Selection.End (xlDown). Valitse LastRow = ActiveCell. Rivi riville = 2 Viimeiseen riviin s = Taulukko1.Solut (rivi, 2). Arvo Sarake = 3 Jos s Kuten "" * * "Sitten FirstSpace = InStr (1, s," ") LastSPace = InStrRev (s," ") Sheet1.Cells (Rivi, Sarake) .Arvo = Vasen (s, LastSPace - 1) Arkki1.Cells (Rivi, Sarake + 1) .Arvo = Oikea (s, Len (s) - FirstSpace) Muu Sheet1.Cells (Rivi, Sarake) .Arvo = s Loppu, jos Seuraava loppu Ala

Meillä on nyt tulos.

Mielenkiintoisia artikkeleita...