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 pabaigos (iš dešinės į kairę), iš kurios ieškome 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 eilutės išraišką, kurios ieškoma.
  • 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, tada ji pradeda ieškoti nuo eilutės pabaigos tuose 80 simbolių kairėje.
  • 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 yra atitikimas.

Kaip naudotis VBA INSTRREV funkcija?

Tarkime, kad 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:

  • Turime spustelėti komandą „Visual Basic“ , esančią skirtuko „Kūrėjas“ grupėje „Kodas“ , arba galime paspausti „ Alt“ + F11, kad atidarytume pagrindinį „Visual“ redaktorių.
  • Įterpsime modulį naudodami meniu „Įterpti“ .
  • Sukursime paprogramę pavadinimu „SplittingNames“.
  • Mums reikia 6 kintamųjų - vieno langelių reikšmėms saugoti, kuriais mes manipuliuosime. Antra už pirmosios vietos eilutėje vietos išsaugojimą, trečia už paskutinės vietos eilutėje vietos išsaugojimą, ketvirta - paskutinės eilutės numerio, penkta ir šeštoji eilutės ir stulpelio, kurią naudosime gretimose eilutėse esančioms reikšmėms spausdinti, įrašymui ląstelių.
  • Norėdami sužinoti paskutinę naudotą lapo eilutę, turime naudoti šį kodą.

Šis kodas pirmiausia pasirenka langelį B1, tada tame pačiame stulpelyje pasirenka paskutinį kartą naudojamą langelį, tada kintamajam „LastRow“ priskiriame 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 nustatykite vertę kintamojo "skiltyje" į 3, nes mes turime rašyti padalinti pavadinimus C (3 -ioji stulpelis) ir stulpelį pirmyn.
  • Jei eilutė yra tik vienas žodis, o 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, tada mes norime padalyti eilutę. Daryti tą patį, mes naudojome INSTR ir INSTRREV funkcija ir sužinoti pirmąjį kosmoso poziciją ir paskutinis kosmoso poziciją, atitinkamai. Tai padės mums surasti atitinkamai pirmąjį ir paskutinį žodžius eilutėje.

Funkcija INSTR pateikia argumentą taip:

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 () 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ą.

Įdomios straipsniai...