VBA InStr | Nangungunang 5 Mga halimbawa upang magamit ang Excel VBA InStr Function

Pag-andar ng Excel VBA InStr

Instr sa VBA ay ginagamit upang malaman ang posisyon ng isang naibigay na substring sa isang string pagkatapos naming tukuyin ang paraan ng paghahambing sa pagpapaandar, mayroong apat na magkakaibang mga pamamaraan ng paghahambing para sa pagpapaandar na ito, ang Instr ay isang function na string ngunit ang output na ibinalik ng pagpapaandar ay bilang bilang output ang pagpapaandar na ito ay nasa isang variable na integer.

Ang string sa VBA ay walang anuman kundi isang serye ng mga character ibig sabihin ang lahat ng mga teksto na ibinibigay ng mga dobleng quote ay itinuturing na mga string. Ang InStr Function ay isang built-in na pagpapaandar ng teksto na ginagamit upang manipulahin ang Mga String. Halimbawa - Kung nais mong kumuha ng isang substring mula sa isang pangungusap o kung nais mong maglapat ng mga pagbabago sa disenyo ng font sa isang partikular na string sa isang serye ng mga character o kung nais mong hanapin ang posisyon ng isang character at maraming iba pang mga posibilidad, maaari mong gamitin ang InStr.

Syntax

Mayroon itong 4 na argumento tulad ng ipinakita sa larawan sa ibaba.

  • [Simula]: Hindi ito sapilitan. Ito ang numerong halaga na kailangan namin upang tukuyin mula sa aling posisyon ng string Instr function ang nagsisimulang maghanap para sa naibigay na teksto. Halimbawa: kung nais mong hanapin ang character "A" sa salita "Bangalore" mula sa ika-3 posisyon na kailangan nating sabihin sa pagpapaandar ng Instr na panimulang posisyon bilang 3. Kaya mula sa character na posisyon ng ika-3 "A" nasa ika-5 posisyon. Kung hindi mo pinapansin ang parameter na default na halaga na ito ay 1.
  • String 1: Ito ang aktwal na string na aming ibinibigay hal. Mula sa tekstong ito sinusubukan naming hanapin ang substring. Halimbawa, kung hinahanap mo ang string "A" sa "Bangalore", String 1 sa Bangalore.
  • String 2: Ito ay walang anuman kundi kung ano ang string na aming hinahanap. Halimbawa, kung hinahanap mo ang string "A" sa "Bangalore", Ang string 2 ay a.
  • [Ihambing]: Ito ay muli isang opsyonal na argument. Mayroong tatlong uri ng mga pagpipilian na magagamit sa argumento [ihambing].

  • vbBinaryCompare: Ito ay walang iba kundi ang isang sensitibong kaso sa paghahanap ng substring (string 2) sa String 1. Halimbawa, kung naghahanap kami "A" sa salita "Bangalore" Ibabalik ng Instr ang 2 bilang resulta at kung naghahanap ka "A" sa sa salita "Bangalore" Ibabalik ni Instr ang 0 bilang resulta dahil ang naibigay na string ay nasa itaas na halaga ng kaso.

Maaari din nating ilagay ang zero (0) bilang pagtatalo.

vbTextCompare: Hindi ito isang case na sensitibong paghahanap ng string 2 sa string 1. Halimbawa, kung naghahanap kami "A" sa salita "Bangalore" Ibabalik ng Instr ang 2 bilang resulta at kung naghahanap ka "A" sa salita "Bangalore" Babalik din si Instr 2. Ang lohika ay A = a, B = b, C = c atbp ....

Maaari din nating ilagay ang isa (1) bilang pagtatalo.

vbDatabaseCompare: Ginagamit ito upang ihambing ang impormasyon mula sa iyong database hal. Microsoft Access database.

Maaari din nating ilagay ang isa (-1) bilang pagtatalo.

Nangungunang 5 Mga halimbawa ng paggamit ng VBA Instr Function

Maaari mong i-download ang VBA Instr Function Excel Template dito - VBA Instr Function Excel Template

Halimbawa # 1

Magsimula tayo sa unang halimbawa. Sa salita Bangalore hanapin ang posisyon ng tauhan a.

Gagawa sa ibaba ng code ang gawain para sa amin.

Code:

 Sub Instr_Example1 () Dim i Bilang Variant i = InStr ("Bangalore", "a") MsgBox i End Sub 

Patakbuhin ngayon ang ibinigay sa itaas na VBA code gamit ang F5 Key o maaari mo ring patakbuhin ang code na ito nang manu-mano tulad ng ipinakita sa screenshot na ibinigay sa ibaba.

Output:

Halimbawa # 2

Ngayon sa salita Bangalore hanapin ang posisyon ng tauhan "A" mula sa pangatlong posisyon.

Gawin ng code sa ibaba ang gawain para sa amin.

Code:

 Sub Instr_Example2 () Dim i Bilang Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub 

Upang mapatakbo ang ibinigay na code sa itaas, maaari mong gamitin ang F5 key o maaari mo ring patakbuhin ang code na ito nang manu-mano tulad ng ipinakita sa screenshot na ibinigay sa ibaba.

Output:

Ngayon sa imahe sa itaas, tingnan ang pagkakaiba mula sa nakaraang code. Dahil nabanggit namin ang panimulang posisyon ng character bilang 3 ay hindi nito pinansin ang unang tauhan "A" sa ika-2 posisyon.

Halimbawa # 3

Ngayon makikita namin ang sensitibong paghahanap sa kaso. Sa salita Bangalore hanapin ang sulat "A".

Para sa mga ito, kailangan naming ibigay ang paghahambing ng argumento bilang vbBinaryCompare.

Code:

 Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub 

Patakbuhin ngayon, ang code na ito gamit ang F5 Key o maaari mo ring patakbuhin ang code na ito nang manu-mano.

Output:

Dahil naibigay namin ang ihambing ang argumento bilang vbBinaryCompare Ibinalik ng pagpapaandar ng instr ang resulta bilang zero sapagkat walang malalaking titik "A" umiiral.

Halimbawa # 4

Ngayon makikita namin ang isa pang case sensitibong paghahanap. Sa salita Bangalore hanapin ang sulat "A". Ang nakaraang halimbawa ay nagbalik ng resulta bilang zero.

Upang mapagtagumpayan ang diskarte na sensitibo sa kaso dito, kailangan naming ibigay ang paghahambing ng argumento bilang vbTextCompare.

Code:

 Sub Instr_Example4 () Dim i Bilang Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub 

Ngayon Patakbuhin, ang code na ito gamit ang F5 Key o maaari mo ring patakbuhin ang code na ito nang manu-mano.

Output:

Halimbawa # 5

Ngayon makikita namin ang advanced na antas ng pagpapaandar ng Instr. Kung mayroon kang maraming mga sheet na may isang higit pa o mas katulad na pangalan at nais mong itago ang lahat ng mga sheet nang sabay-sabay maaari naming gamitin ang code sa ibaba upang itago ang isang tukoy na sheet.

Halimbawa, mayroon akong 5 sheet na pinangalanan Buod 1, Buod 2, Buod 3, Buod 4, at Data Sheet.

Ngayon nais kong itago ang lahat ng mga sheet na mayroong salita "Buod". Gamitin ang code sa ibaba upang maitago ang lahat ng mga sheet na may salitang Buod sa pangalan nito.

Code:

 Sub To_Hide_Specific_Sheet () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Mga Worksheet Kung InStr (Ws.Name, "Buod")> 0 Pagkatapos Ws.Visible = xlSheetVeryHidden End Kung Susunod na function ng InStr ng WS ay naghahanap ng salita o parirala sa sheet sheet 'Kung mahahanap ito pagkatapos ay maitatago ang End Sub 

Ngayon Patakbuhin, ang code na ito gamit ang F5 Key o maaari mo ring patakbuhin ang code na ito nang manu-mano at makita ang Output.

Katulad nito upang maipakita ang lahat ng mga sheet na iyon gamitin ang code sa ibaba.

Code:

 Sub To_UnHide_Specific_Sheet () Dim Ws Bilang Worksheet Para sa bawat Ws Sa ActiveWorkbook. Mga Worksheet Kung InStr (Ws.Name, "Buod")> 0 Pagkatapos Ws.Visible = xlSheetVisible End Kung Susunod na function ng InStr ng WS ay naghahanap ng salita o parirala sa sheet sheet 'Kung mahahanap ito pagkatapos ay maitatago ang End Sub 

Ngayon Patakbuhin, ang code na ito gamit ang F5 Key o maaari mo ring patakbuhin ang code na ito nang manu-mano at makita ang Output.

Bagay na dapat alalahanin

  • Ang instr ay isang pagpapaandar na sensitibo sa kaso. Upang matanggal ang sensitibong isyu sa kasong ito, kailangan mong ibigay ang [ihambing] na argument bilang.
  • Kung naghahanap ka para sa character na sensitibo sa kaso kailangan mong ibigay ang argumento sa [ihambing] bilang default na kinukuha ito ng VBA bilang argumento kahit na hindi mo ibibigay.
  • Ang instr ay isang pagpapaandar ng VBA upang hindi mo ito magamit sa isang excel worksheet tulad ng iba pang mga built-in na formula.
  • Kung hindi mahanap ng pagpapaandar ang String 2 ang resulta ay magiging zero.