VBA InStrRev - Kā izmantot Excel VBA InStrRev funkciju?

Satura rādītājs

Excel VBA INSTRREV

Funkcija VBA INSTRREV , kas nozīmē “In String Reverse” , atgriež meklēšanas virknes (apakšvirknes) pirmās parādīšanās pozīciju citā virknē, sākot no tās virknes beigām (no labās uz kreiso), no kuras mēs meklējam virkne ar meklēšanu.

Funkcija INSTRREV sāk meklēt meklējamo virkni no tās virknes beigām, kurā mums tas ir jānoskaidro, bet pozīciju skaita no sākuma. Ir vēl viena INSTR VBA funkcija (apzīmē virkni In ), kas arī meklē virkni citā virknē un atgriež pozīciju, taču šī funkcija sāk meklēšanu no tās virknes sākuma, no kuras mēs meklējam meklējamo virkni.

INSTRREV un INSTR , abi ir MS Excel iebūvētā virknes / teksta VBA funkcija . Mēs tos varam izmantot, rakstot jebkuru makro Microsoft Visual Basic Editor.

Sintakse

Kā redzam augšējā attēlā, ir 2 obligātie un 2 izvēles argumenti.

  • StringCheck As String: Šis ir nepieciešamais arguments. Mums jāsniedz virknes izteiksme, kas tiek meklēta.
  • StringMatch kā virkne: Šis arguments ir arī nepieciešams. Mums jānorāda meklējamā virknes izteiksme.
  • Sākt tik ilgi = -1: Šis ir neobligāts arguments. Mēs norādām skaitlisko izteiksmi. Pēc noklusējuma tas aizņem -1, kas nozīmē, ka meklēšana sākas pēdējā rakstzīmes pozīcijā. Ja mēs norādām kādu pozitīvu vērtību, piemēram, 80, tad tā sāk meklēt no virknes beigām šajās 80 kreisās rakstzīmēs.
  • Salīdzināt kā VbCompareMethod = vbBinaryCompare As Long: Šis arguments nav obligāts.

Šim argumentam mēs varam norādīt šādas vērtības.

Atgriezt vērtības

  1. Funkcija INSTRREV atgriež 0, ja virknes pārbaude ir nulle garuma vai virknes atbilstība nav atrasta, vai arguments “Sākt” > virknes atbilstības garums .
  2. Šī funkcija atgriež vērtību “Null”, ja virknes pārbaude vai virknes atbilstība ir “Null”.
  3. Ja virknes atbilstība ir nulles garuma, funkcija atgriežas, lai sāktu .
  4. Ja virknes pārbaudē tiek atrasta virknes atbilstība , funkcija atgriež pozīciju, kurā tiek atrasta atbilstība.

Kā izmantot VBA INSTRREV funkciju?

Pieņemsim, ka mums ir dati par filmu nosaukumiem un to režisoriem. Mēs vēlamies sadalīt direktoru vārdus.

Mums ir dati 1201 rindā. Ja mēs veicam šo uzdevumu manuāli, tas prasīs daudz laika.

Lai to izdarītu, mēs izmantosim VBA kodu. Darbības ir šādas:

  • Mums ir jānoklikšķina uz komandas Visual Basic, kas pieejama cilnes “Izstrādātājs” grupā “Kods” , vai arī mēs varam nospiest Alt + F11, lai atvērtu vizuālo pamata redaktoru.
  • Mēs ievietosim moduli, izmantojot izvēlni 'Ievietot' .
  • Mēs izveidosim apakšprogrammu ar nosaukumu “SplittingNames”.
  • Mums ir nepieciešami 6 mainīgie - viens šūnu vērtību glabāšanai, ar kuriem mēs manipulēsim. Otrais pirmās vietas pozīcijas saglabāšanai virknē, trešais pēdējās vietas pozīcijas glabāšanai virknē, ceturtais pēdējās rindas numura glabāšanai, piektais un sestais rindas un kolonnas glabāšanai, ko izmantosim, lai iespiestu vērtības blakus šūnas.
  • Lai uzzinātu pēdējo izmantoto rindu lapā, mums jāizmanto šāds kods.

Šis kods vispirms atlasīs šūnu B1 un pēc tam tajā pašā kolonnā atlasīs pēdējo izmantoto šūnu, un pēc tam mēs mainīsim šūnas rindas numuru mainīgajam 'LastRow'.

  • Tagad, lai manipulētu ar visām šūnām kolonnā B, mēs palaidīsim cilpu “par” .
  • Mēs glabāsim B kolonnas šūnu vērtību no 2. līdz 121. rindai pa vienam mainīgajā 's', lai ar tām manipulētu.
  • Mums ir nepieciešams, lai iestatītu vērtību mainīgā "Kolonna", līdz 3, kas mums ir nepieciešams, lai rakstītu split nosaukumus C (3 rd sleja) un kolonnu tālāk.
  • Ja virkne ir tikai viens vārds, kas nozīmē, ka virknē nav vietas, tad mēs vēlamies pašu virkni kā izvadi. Lai to izdarītu, mēs norādīsim nosacījumu, izmantojot “Ja un citu paziņojumu” ar zvaigznītes zīmi (kas apzīmē vienu vai vairākas rakstzīmes) šādi:
  • Ja virknē ir vieta, tad mēs vēlamies sadalīt virkni. Lai izdarītu to pašu, mēs esam izmantojuši INSTR un INSTRREV funkcijas, lai noskaidrotu attiecīgi pirmo un pēdējo vietu. Tas mums palīdzēs atrast attiecīgi pirmo un pēdējo vārdu virknē.

Funkcija INSTR izmanto šādu argumentu:

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 As Long Dim LastSPace As Long Dim LastRow As Long Dim Row As Long Dim Column As Long Sheet1.Range ("B1"). Atlasiet Selection.End (xlDown). Atlasiet LastRow = ActiveCell. Rinda rindai = 2 uz LastRow s = Sheet1.Cells (2. rinda). Vērtības kolonna = 3 Ja s Patīk "* *" Tad FirstSpace = InStr (1, s, "") LastSPace = InStrRev (s, "") Sheet1.Cells (Row, Column) .Vērtība = Kreisā (s, LastSPace - 1) Sheet1.Cells (Row, Column + 1). Value = Right (S, Len (s) - FirstSpace) Cita lapa1.Cells (Row, Kolonna). Vērtība = s Beigas, ja Nākamā beigu apakšnodaļa

Mums tagad ir rezultāts.

Interesanti raksti...