VBA „InStrRev“ Kaip naudoti „Excel VBA InStrRev“ funkciją?

„Excel VBA INSTRREV“

Funkcija „ VBA INSTRREV“ , kuri reiškia „In String Reverse“ , grąžina pirmosios paieškos eilutės (substring) atsiradimo vietą kitoje eilutėje, pradedant nuo eilutės, kurios ieškome, pabaigos ieškoma eilutė.

Funkcija INSTRREV pradeda ieškoti ieškomos eilutės nuo eilutės pabaigos, kurią turime išsiaiškinti, tačiau skaičiuoja poziciją nuo pat pradžių. Yra dar viena INSTR vba funkcija (reiškia „In String“ ), kuri taip pat ieško eilutės kitoje eilutėje ir grąžina poziciją, tačiau ši funkcija pradeda paiešką nuo eilutės pradžios, nuo kurios ieškome ieškomos eilutės.

INSTRREV ir INSTR , abu yra built-in String / Tekstas VBA funkcija MS Excel. Mes galime juos naudoti rašydami bet kurią makrokomandą „Microsoft Visual Basic“ redaktoriuje.

Sintaksė

Kaip matome aukščiau esančiame paveikslėlyje, yra 2 privalomi ir 2 neprivalomi argumentai.

  • „StringCheck As String“: tai yra būtinas argumentas. Turime suteikti ieškomą eilutės išraišką.
  • StringMatch As String: Šis argumentas taip pat reikalingas. Turime nurodyti ieškomą eilutės išraišką.
  • Pradėti kaip ilgai = -1: Tai neprivalomas argumentas. Nurodome skaitinę išraišką. Pagal numatytuosius nustatymus tai užima -1, o tai reiškia, kad paieška prasideda paskutinėje simbolio vietoje. Jei nurodysime kokią nors teigiamą vertę, pvz., 80, ji pradeda ieškoti nuo eilutės pabaigos tuose 80 kairėje esančių simbolių.
  • Palyginti kaip VbCompareMethod = vbBinaryCompare As Long: Šis argumentas yra neprivalomas.

Šiam argumentui galime nurodyti šias reikšmes.

Grąžinimo vertės

  1. Funkcija INSTRREV grąžina 0, jei eilutės patikra  yra nulinio ilgio arba eilutės atitiktis  nerasta arba argumentas „pradžia“ > eilutės atitikties ilgis .
  2. Ši funkcija grąžina „Null“, jei eilutės patikra  arba eilutės atitiktis  yra „Null“ .
  3. Jei eilutės atitiktis yra nulinio ilgio, funkcija vėl pradedama .
  4. Jei eilučių patikrinimo metu randama eilutės atitiktis , funkcija grąžina vietą, kurioje rastas atitikmuo.

Kaip naudotis VBA INSTRREV funkcija?

Šį „VBA INSTRREV Excel“ šabloną galite atsisiųsti čia - „VBA INSTRREV Excel“ šablonas

Tarkime, turime duomenų apie filmų pavadinimus ir jų režisierius. Norime išskirstyti režisierių vardus.

Turime duomenų 1201 eilutėje. Jei atliksime šią užduotį rankiniu būdu, tai užtruks daug laiko.

Norėdami tai padaryti, naudosime VBA kodą. Veiksmai yra:

  • Mums reikia paspausti ant "Visual Basic" Command esančia "kodas" Group "užsakovas" Tab "ar mes galime paspausti Alt + F11 atidaryti Visual Basic Editor.

  • Įterpsime modulį naudodami meniu „Įterpti“ .

  • Sukursime paprogramę pavadinimu „SplittingNames“ .

  • Mums reikia 6 kintamųjų. Vienas skirtas langelių reikšmėms saugoti, kuriomis manipuliuosime. Antra, norint išsaugoti pirmosios vietos poziciją eilutėje, trečia - paskutinės vietos eilutėje, ketvirta - paskutinės eilutės numeriui išsaugoti, penkta ir šeštoji eilutėms ir stulpeliams, kurias naudosime atspausdindami reikšmes gretimose ląstelėse.

  • Norėdami sužinoti paskutinę naudotą lapo eilutę, turime naudoti šį kodą.

Šis kodas pirmiausia pasirinks langelį B1, tada tame pačiame stulpelyje pasirinks paskutinį kartą panaudotą langelį, tada „LastRow“ kintamajam priskirsime langelio eilutės numerį.

  • Dabar, norėdami manipuliuoti visomis langelio B stulpelyje, vykdysime „už“ kilpą .

  • B stulpelio nuo 2 iki 1201 eilutės langelių vertę po vieną kaupsime 's' kintamajame, kad galėtume jais manipuliuoti.

  • Turime nustatyti kintamojo „Stulpelis“ vertę į 3, nes padalijimo vardus turime rašyti C (3 stulpelis) ir stulpelį toliau.

  • Jei eilutė yra tik vienas žodis, tai reiškia, kad eilutėje nėra vietos, tada mes norime, kad pati eilutė būtų išvestis. Tam mes nurodysime sąlygą naudodami „If and Else utasítás“ su žvaigždutės ženklu (žyminčiu vieną ar daugiau simbolių) taip:

  • Jei eilutėje yra vietos, mes norime padalyti eilutę. Daryti tą patį mes naudojome instr ir INSTRREV funkciją tiek sužinoti pirmąjį kosmoso poziciją ir paskutinis kosmoso poziciją atitinkamai. Tai padės mums atitinkamai surasti pirmąjį ir paskutinį žodžius eilutėje.

Funkcija INSTR pateikia argumentą taip:

Išsami argumento informacija

  • Pradžia: nuo kurios pozicijos pradėti.
  • 1 eilutė: turime suteikti ieškomą eilutės išraišką.
  • 2 eilutė: turime nurodyti eilutės išraišką, kurios ieškoma.

Palyginta kaip „VbCompareMethod“: nurodant palyginimo metodą. Pagal numatytuosius nustatymus tai yra dvejetainis palyginimas.

  • Turime naudoti „vba LEFT“ funkciją, kad iš eilutės ištrauktume kairius simbolius. Mes panaudojome „Last Space-1“, kad gautume likusius simbolius prieš paskutinę tarpą.

Turime naudoti RIGHT ir LEN funkcijas, norėdami iš eilės ištraukti tinkamus simbolius po pirmojo tarpo.

Makro parašyta. Dabar mes tiesiog turime paleisti makrokomandą naudodami klavišą F5 .

Kodas:

 Sub SplittingNames () Dim s As String Dim FirstSpace Long Long LastSPace As Long Dim LastRow As Long Dim Row As Long Dim Column As Long Sheet1.Range ("B1"). Pasirinkite Selection.End (xlDown). Pasirinkite LastRow = ActiveCell. Eilutė eilutei = 2 į LastRow s = Sheet1.Cells (2 eilutė). Vertės stulpelis = 3 If s Like "* *" Tada FirstSpace = InStr (1, s, "") LastSPace = InStrRev (s, "") Sheet1.Cells (eilutė, stulpelis) .Vertė = kairė (s, LastSPace - 1) lapas1.Cells (eilutė, stulpelis + 1) .Vertė = dešinė (s, Len (s) - FirstSpace) kita lentelė1.Cells (Row, Stulpelis). Vertė = s pabaiga, jei kita pabaiga 

Dabar turime rezultatą.