VBA InStrRev | Paano gamitin ang Excel VBA InStrRev Function?

Excel VBA INSTRREV

VBA INSTRREV Pag-andar, bilang ibig sabihin 'Sa String Reverse', ibinalik ang posisyon ng unang paglitaw ng isang string ng paghahanap (substring) sa isa pang string, na nagsisimula mula sa dulo ng string (mula sa kanan hanggang kaliwa) kung saan naghahanap kami ng isang mahahanap na string.

INSTRREV nagsisimula ang pag-andar ng paghahanap para sa mahahanap na string mula sa dulo ng string kung saan kailangan naming malaman ngunit binibilang ang posisyon mula sa simula. May isa pa INSTR vba Function (nangangahulugang 'Sa String') na naghahanap din para sa isang string sa isa pang string at ibabalik ang posisyon ngunit ang pagpapaandar na ito ay nagsisimula sa paghahanap mula sa simula ng string na kung saan naghahanap kami para sa mahahanap na string.

INSTRREV at INSTR, pareho ang built-in Pag-andar ng String / Text VBA ng MS Excel. Maaari naming gamitin ang mga ito habang sumusulat ng anumang macro sa Microsoft Visual Basic Editor.

Syntax

Tulad ng nakikita natin sa imahe sa itaas, mayroong 2 sapilitan at 2 mga opsyonal na argumento.

  • StringCheck Bilang String: Ito ang kinakailangang argumento. Kailangan naming bigyan ang expression ng string na hinahanap.
  • StringMatch Bilang String: Ang argument na ito ay kinakailangan din. Kailangan naming tukuyin ang expression ng string na hinahanap.
  • Magsimula Bilang Mahaba = -1: Ito ay isang opsyonal na argument. Tinutukoy namin ang pagpapahayag ng bilang. Bilang default, tumatagal ng -1 na nangangahulugang nagsisimula ang paghahanap sa huling posisyon ng character. Kung tinukoy namin ang anumang positibong halaga tulad ng 80 pagkatapos ay nagsisimula itong maghanap mula sa dulo ng string sa 80 character ng kaliwa.
  • Ihambing Bilang VbCompareMethod = vbBinaryCompare Bilang Mahaba: Opsyonal ang argument na ito.

Maaari naming tukuyin ang mga sumusunod na halaga para sa argument na ito.

Mga Halaga sa Pagbabalik

  1. INSTRREV nagbabalik ang pagpapaandar 0 kung pagsusuri ng string ay may haba na zero o tugma sa string ay hindi natagpuan o 'Start' argumento> haba ng tugma sa string.
  2. Nagbabalik ang pagpapaandar na ito 'Wala' kung ang pagsusuri ng string o tugma sa string ay 'Wala'.
  3. Kung ang tugma sa string ay haba ng zero, pagkatapos ay babalik ang pagpapaandar sa umpisahan.
  4. Kung ang tugma sa string ay matatagpuan sa loob ng isang string check, pagkatapos ay ibabalik ng pagpapaandar ang posisyon kung saan matatagpuan ang tugma.

Paano Gumamit ng VBA INSTRREV Function?

Maaari mong i-download ang VBA INSTRREV Excel Template dito - VBA INSTRREV Excel Template

Ipagpalagay, mayroon kaming data para sa mga pangalan ng pelikula at kanilang mga direktor. Nais naming paghiwalayin ang mga pangalan ng director.

Mayroon kaming data sa 1201 na mga hilera. Kung gagawin natin ang gawaing ito nang manu-mano, kakailanganin ito ng maraming oras.

Upang gawin ang pareho, gagamitin namin ang VBA code. Ang mga hakbang ay:

  • Kailangan nating mag-click sa 'Visual Basic' Magagamit ang utos sa 'Code' Pangkatin sa 'Developer' Tab o maaari nating pindutin Alt + F11 upang buksan ang visual basic editor.

  • Ipapasok namin ang a modyul gamit ang Menu na 'Ipasok'.

  • Lilikha kami ng isang subroutine na pinangalanan 'SplitingNames'.

  • Kailangan namin ng 6 na variable. Isa para sa pagtatago ng mga halaga ng mga cell, na gagamitin namin. Pangalawa para sa pagtatago ng posisyon ng unang puwang sa string, pangatlo para sa pagtatago ng posisyon ng huling puwang sa string, pang-apat para sa pagtatago ng huling numero ng hilera, ikalima at ikaanim para sa hilera at haligi na gagamitin namin upang mai-print ang mga halaga sa mga katabing cell.

  • Upang malaman ang huling ginamit na hilera sa sheet, kailangan naming gamitin ang sumusunod na code.

Pipili muna ng code na ito ang cell B1 at pagkatapos ay pipiliin ang huling ginamit na cell sa parehong haligi at pagkatapos ay itatalaga namin ang numero ng hilera ng cell sa variable na 'LastRow'.

  • Ngayon upang manipulahin ang lahat ng mga cell sa haligi ng B, tatakbo kami a Loop na 'para'.

  • Iimbak namin ang halaga ng mga cell ng haligi ng B mula sa hilera 2 hanggang hilera 1201 isa-isa sa variable na ‘s upang manipulahin ang mga ito.

  • Kailangan nating itakda ang halaga ng variable na 'Column' hanggang 3 tulad ng kailangan nating isulat ang mga nagkakahiwalay na pangalan sa C (3 Haligi) at isang haligi pasulong.

  • Kung ang string ay isang salita lamang na nangangahulugang walang puwang sa string pagkatapos gusto namin ang string mismo bilang output. Para dito, tutukuyin namin ang paggamit ng kundisyon 'Kung at Ibang pahayag' na may isang tanda ng asterisk (nagsasaad ng isa o higit pang mga character) tulad ng sumusunod:

  • Kung may puwang sa string pagkatapos ay nais naming hatiin ang string. Upang gawin ang parehong ginamit namin INSTR at INSTRREV gumana kapwa upang malaman ang unang posisyon ng puwang at huling posisyon ng puwang ayon sa pagkakabanggit. Ito ay makakatulong sa amin upang mahanap ang unang salita at huling salita sa string ayon sa pagkakabanggit.

Kinukuha ng INSTR Function ang argumento sa ibaba:

Mga Detalye ng Argumento

  • Simula: Mula sa aling posisyon upang magsimula.
  • String1: Kailangan naming bigyan ang expression ng string na hinahanap.
  • String2: Kailangan naming tukuyin ang expression ng string na hinahanap.

Kumpara bilang VbCompareMethod: Pagtukoy ng pamamaraang Paghahambing. Bilang default, ito ay binary ihambing.

  • Kailangan nating gamitin ang vba KALIWAN pagpapaandar upang makuha ang kaliwang mga character mula sa string. Nagamit na namin 'Huling Space-1' upang makuha ang kaliwang mga character bago ang huling puwang.

Kailangan nating gamitin ang TAMA at LEN function upang makuha ang tamang mga character mula sa string pagkatapos ng unang puwang.

Nakasulat ang Macro. Ngayon ay kailangan lang naming patakbuhin ang macro gamit ang F5 susi

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"). Select Selection.End (xlDown). Select LastRow = ActiveCell Hilera Para sa Hilera = 2 To LastRow s = Sheet1.Cells (Row, 2). Halaga ng Haligi = 3 Kung Tulad ng "* *" Kung gayon FirstSpace = InStr (1, s, "") LastSPace = InStrRev (s, "") Sheet1.Cells (Row, Column). Halaga = Kaliwa (s, LastSPace - 1) Sheet1.Cells (Row, Column + 1). Value = Right (s, Len (s) - FirstSpace) Else Sheet1.Cells (Row, Column) .Value = s End Kung Susunod na End Sub 

Mayroon kaming resulta ngayon.