VBA InStrRev | Kuidas kasutada Exceli VBA InStrRev funktsiooni?

Exceli VBA INSTRREV

Funktsioon VBA INSTRREV , mis tähistab tähist „String Reverse” , tagastab otsingu stringi (alamstringi) esimese esinemise positsiooni teises stringis, alustades selle stringi lõpust (paremalt vasakule), mida otsime otsitav string.

Funktsioon INSTRREV alustab otsitava stringi otsimist selle stringi lõpust, mille peame välja selgitama, kuid loeb positsiooni algusest peale. On veel üks INSTR vba funktsioon (tähistab 'stringis' ), mis otsib ka stringi teises stringis ja tagastab positsiooni, kuid see funktsioon alustab otsingut stringi algusest, kust otsitavat stringi otsime.

INSTRREV ja INSTR , mõlemad on MS Exceli sisseehitatud string / tekst VBA funktsioon . Saame neid kasutada Microsoft Visual Basic Editoris mis tahes makro kirjutamisel.

Süntaks

Nagu näeme ülaltoodud pildil, on 2 kohustuslikku ja 2 valikulist argumenti.

  • StringCheck As String: See on vajalik argument. Peame andma otsitava stringi avaldise.
  • StringMatch stringina: See argument on samuti nõutav. Peame määrama otsitava stringi avaldise.
  • Start As Long = -1: See on valikuline argument. Täpsustame arvulise avaldise. Vaikimisi kulub selleks -1, mis tähendab, et otsing algab märgi viimasest positsioonist. Kui määrame positiivse väärtuse, näiteks 80, hakkab see otsima stringi lõpust nendes 80 vasakpoolses tähemärgis.
  • Võrdle kui VbCompareMethod = vbBinaryCompare As Long: See argument on valikuline.

Selle argumendi jaoks saame määrata järgmised väärtused.

Tagastusväärtused

  1. Funktsioon INSTRREV tagastab 0, kui stringi kontroll  on nullpikk või stringi vastet  ei leita või argument „algus” > stringi vaste pikkus .
  2. See funktsioon tagastab väärtuse „Null”, kui stringi kontroll  või stringivastus  on „Null” .
  3. Kui stringivastus on nullpikk, naaseb funktsioon uuesti .
  4. Kui string vaste leitakse jooksul string kontroll , siis tagastab asendis, milles leitakse vastav.

Kuidas kasutada funktsiooni VBA INSTRREV?

Selle VBA INSTRREV Exceli malli saate alla laadida siit - VBA INSTRREV Exceli mall

Oletame, et meil on andmeid filmide nimede ja nende režissööride kohta. Me tahame jagada lavastajate nimed.

Andmeid on meil 1201 reas. Kui teeme selle ülesande käsitsi, võtab see palju aega.

Selleks kasutame VBA koodi. Sammud on:

  • Peame klõpsama käsku Visual Basic, mis on saadaval vahekaardi Arendaja rühmas Kood, või võime visuaalse põhiredaktori avamiseks vajutada Alt + F11 .

  • Me sisestada moodul kasutades "Insert" menüüs .

  • Loome alamprogrammi nimega 'SplittingNames' .

  • Vajame 6 muutujat. Üks lahtrite väärtuste salvestamiseks, mida me manipuleerime. Teiseks esimese ruumi positsiooni salvestamiseks stringis, kolmandaks viimase ruumi positsiooni salvestamiseks stringis, neljandaks viimase rea numbri salvestamiseks, viiendaks ja kuuendaks rea ja veeru jaoks, mida kasutame väärtuste printimiseks külgnevatesse lahtritesse.

  • Lehe viimati kasutatud rea teada saamiseks peame kasutama järgmist koodi.

See kood valib kõigepealt lahtri B1 ja seejärel samast veerust viimati kasutatud lahtri ning seejärel määrame muutujale „LastRow” lahtri rea numbri.

  • Nüüd kõigi veerus B olevate lahtritega manipuleerimiseks käivitame tsükli „for” .

  • B-veeru lahtrite väärtus reast 2–1201 salvestatakse ükshaaval muutuja 's' s nende manipuleerimiseks.

  • Peame määrama muutuja 'Column' väärtuseks 3, kuna jagunimed tuleb kirjutada C-sse (3. veerg) ja veerg edasi.

  • Kui string on ainult üks sõna, mis tähendab, et stringis pole tühikut, siis soovime, et string ise oleks väljund. Selleks täpsustame tingimuse, kasutades tärniga (tähistades üht või mitut tähemärki) tähte "If and Else lause" järgmiselt:

  • Kui stringis on ruumi, siis tahame stringi jagada. Sama tegemiseks oleme kasutanud funktsioone INSTR ja INSTRREV, et selgitada välja vastavalt esimese ja viimase ruumi positsioon. See aitab meil leida stringi esimene ja viimane sõna.

Funktsioon INSTR võtab järgmise argumendi:

Argumendi üksikasjad

  • Algus: millisest positsioonist alustada.
  • String1: peame andma otsitava stringi avaldise.
  • String2: peame määrama otsitava stringi avaldise.

Võrreldes VbCompareMethodiga: võrdlusmeetodi määramine. Vaikimisi on see binaarne võrdlus.

  • Stringist vasakpoolsete märkide väljavõtmiseks peame kasutama funktsiooni vba LEFT . Vasakpoolsete tähemärkide saamiseks enne viimast tühikut kasutasime sõna „Viimane tühik-1” .

Õigete tähemärkide eemaldamiseks stringist peame pärast esimest tühikut kasutama funktsioone RIGHT ja LEN .

Makro on kirjutatud. Nüüd peame lihtsalt käivitama makro, kasutades klahvi F5 .

Kood:

 Sub SplittingNames () Dim s stringina Dim FirstSpace As Long Dim LastSPace As Long Dim LastRow As Long Dim Row As Long Dim Column as Long Sheet1.Range ("B1"). Valige Selection.End (xlDown). Valige LastRow = ActiveCell Rida reale = 2 kuni LastRow s = leht1.Rakud (rida, 2). Veeru väärtus = 3 Kui s Like "* *" Siis FirstSpace = InStr (1, s, "") LastSPace = InStrRev (s, "") Sheet1.Cells (rida, veerg). Väärtus = vasak (s, LastSPace - 1) leht1Cells (rida, veerg + 1). Väärtus = Right (s, Len (s) - FirstSpace) muu leht1.Cells (rida, Veerg). Väärtus = s Lõpp, kui järgmine lõpp alam 

Nüüd on meil tulemus olemas.


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