Paano Maghanap ng String gamit ang VBA sa Excel (8 Halimbawa)

  • Ibahagi Ito
Hugh West

Ang pagpapatupad ng VBA ay ang pinakaepektibo, pinakamabilis, at pinakaligtas na paraan upang magpatakbo ng anumang operasyon sa Excel. Sa artikulong ito, ipapakita namin sa iyo kung paano maghanap ng ilang partikular na string sa isa pang ibinigay na string gamit ang VBA sa Excel.

I-download ang Template ng Practice

Ikaw maaaring i-download ang libreng practice Excel template mula dito.

VBA na Hahanapin sa String.xlsm

InStr Function

May built-in na function ang Microsoft Excel na tinatawag na ang InStr Function upang mahanap ang posisyon ng mga partikular na string sa isang partikular na String.

Generic Syntax:

InStr([start], string1, string2, [compare])

Narito,

Mga Argumento Kinakailangan/ Opsyonal Kahulugan
simulan Opsyonal Simulang posisyon ng paghahanap.
  • Bilang default, kinakalkula ng function na InStr ang posisyon ng character sa pamamagitan ng pagbibilang mula sa 1, hindi mula sa panimulang posisyon. Kaya, maaari mong iwanang blangko ito kung gusto mo.
string1 Kinakailangan Ang string na hahanapin, Pangunahing String.
string2 Kinakailangan Ang string na hahanapin sa pangunahing string .
ihambing Opsyonal Ang InStr function ay case-sensitive bilang default. Ngunit kung gusto mong magpatakbo ng case insensitive InStr , maaari mong ipasa ang argument dito upang magsagawa ng isang partikular na paghahambing. Ang argumentong ito ay maaaring ang mga sumusunodmga halaga,
  • vbBinaryCompare -> nagsasagawa ng binary na paghahambing, nagbabalik ng halaga 0
  • vbTextCompare -> nagsasagawa ng paghahambing ng text, nagbabalik ng value 1
  • vbDatabaseCompare -> nagsasagawa ng paghahambing sa database, nagbabalik ng value 2

Bilang default, kinukuha ng InStr ang vbBinaryCompare bilang argumento ng paghahambing.

8 Madaling Halimbawa para Makahanap ng Tukoy na Posisyon ng String sa Given String Gamit ang VBA

Tingnan natin ang ilang simpleng halimbawa para makuha ang mga posisyon ng ilang string sa isang naibigay na string gamit ang VBA .

1. VBA na Maghanap ng Posisyon ng Teksto sa String

Sa ibaba ay isang halimbawa ng InStr upang mahanap ang posisyon ng isang text sa isang string.

  • Pindutin ang Alt + F11 sa iyong keyboard o pumunta sa tab na Developer -> Visual Basic para buksan ang Visual Basic Editor .

  • Sa pop-up code window, mula sa menu bar , i-click ang Ipasok -> Module .

  • Ngayon sa window ng code, magsulat ng simpleng InStr program sa loob ng VBA Sub Pamamaraan (tingnan sa ibaba).
9638

Handa nang tumakbo ang iyong code.

  • Pindutin ang F5 sa iyong keyboard o mula sa menu bar piliin ang Run -> Patakbuhin ang Sub/UserForm . Maaari mo ring i-click lang ang icon ng maliit na Play sa sub-menu bar upang patakbuhin ang macro.

Makikita mo na ang magbibigay sa iyo ang pop-up message box ng numberpagdedeklara ng posisyon ng text na gusto mong suriin.

Paliwanag:

Ang aming pangunahing string, " Kaligayahan ay isang pagpipilian " ay isang 21 titik na pangungusap (na may mga puwang) at gusto naming hanapin ang posisyon ng text na " choice " sa string na iyon. Ang text na “ choice ” ay nagsimula sa ika-16 na posisyon ng pangunahing string, kaya nakuha namin ang numerong 16 bilang aming output sa message box.

2. VBA na Maghanap ng Teksto mula sa isang Tukoy na Posisyon sa String

Ngayon, alamin natin kung ano ang mangyayari kung gusto nating makuha ang posisyon mula sa isang tiyak na numero.

  • Katulad ng bago, buksan ang Visual Basic Editor mula sa tab na Developer at Ipasok ang isang Module sa window ng code.
  • Sa ang window ng code, magsulat ng simpleng InStr program na ipinapakita sa itaas at ipasa ang value sa start argument ayon sa posisyon kung saan mo gustong bilangin ang iyong text.
4932

  • Susunod, Patakbuhin ang code.

Makikita mo na ang pop-up message box ay bigyan ka ng number na nagdedeklara ng posisyon ng text nagsisimula sa isang partikular na posisyon na gusto mong suriin.

Paliwanag:

Tulad ng alam na natin (mula sa phase 1 na talakayan) na ang tekstong “ choice ” ay nagsimula sa posisyong 16 , kaya nagpasok kami ng dalawang “ choice ” sa pangunahing string at itakda ang 17 bilang amingUnang parameter para laktawan ang unang “ pagpipilian ”. Kaya, Patakbuhin namin ang macro sa itaas at ipinakita nito sa amin ang numero ng posisyon 27 na eksaktong numero ng posisyon ng pangalawa pagpipilian ” sa ibinigay na string.

3. VBA to Find Text with Case-insensitive InStr Function in String

Mula sa pagpapakilala ng InStr function alam mo na na bilang default, ang InStr function ay case sensitive. Alamin natin iyon gamit ang isang halimbawa.

Tingnan ang sumusunod na VBA code, kung saan gusto naming mahanap ang posisyon ng salitang “ Choice ” na may capital na “C” sa string na “ Ang kaligayahan ay isang pagpipilian ” kung saan ang pagpipilian ay nakasulat gamit ang isang maliit na “c” .

  • Patakbuhin ang code at hanapin ang 0 bilang aming output.

Iyon ay dahil ang InStr function ay nag-iiba sa capital na “C” at maliit na “c” . Kaya hinanap nito ang salitang “ Choice ” sa string at walang nakuhang anumang tugma, kaya ibinalik 0 .

  • Upang gawin ang InStr function na case-insensitive , itakda ang compare argument sa vbTextCompare (tingnan sa ibaba).
9510

  • Patakbuhin ang code.

Makukuha mo ang posisyon ng text mula sa string, nakasulat man ang text sa mga malalaking titik o maliliit na letra .

4. VBA para Maghanap ng Teksto mula sa Kanan ng isang String

Hanggang ngayon ang InStr function ay nagbibigay lamang sa amin ng posisyon mula sa kaliwang bahagi ng string. Ngunit paano kung gusto mong hanapin ang posisyon ng text mula sa kanang bahagi ng string.

Ang InStrRev Function ay naghahanap mula sa kanan. Gumagana ang InStrRev function na halos kapareho ng function na InStr at makikita nito sa iyo ang posisyon ng isang text mula sa kanang bahagi ng string.

Tingnan ang mga sumusunod na halimbawa upang maunawaan ang pagkakaiba.

  • Kung patakbuhin natin ang sumusunod na code gamit ang function na InStr ,

ibinibigay nito sa amin ang posisyon ( 16 ) ng unang text na “ pagpipilian ”.

  • Ngunit kung patakbuhin natin ang parehong code sa InStrRev Function,

ibinibigay nito sa amin ang posisyon ( 27 ) ng huling text na “ choice ”.

Mga Katulad na Pagbasa:

  • FindNext Gamit ang VBA sa Excel (2 Halimbawa)
  • Paano Maghanap at Palitan Gamit ang VBA (11 Paraan)
  • Hanapin ang Eksaktong Tugma Gamit ang VBA sa Excel (5 Paraan)

5. VBA para Maghanap ng Posisyon ng isang Character sa String

Maaari mo ring mahanap ang posisyon ng isang partikular na character sa isang string sa parehong paraan na nakita mo ang text.

  • Kopyahin ang sumusunod na code sa iyong VBA code window
8673

  • At Patakbuhin ang macro.

Ang unang “ e ” sa aming ibinigay na string ay nasaang numerong 7 na posisyon.

6. VBA to Find Substring in a String

Dito natin malalaman kung paano hanapin kung ang string ay naglalaman ng substring o wala.

Upang makuha iyon, mayroon tayong upang magpatakbo ng IF Statement sa aming code.

  • Katulad ng dati, buksan ang Visual Basic Editor mula sa tab na Developer at Maglagay ng Module sa window ng code.
  • Sa window ng code, kopyahin ang sumusunod na code at i-paste ito.
5175

Iyong ang code ay handa na ngayong tumakbo.

  • Patakbuhin ang macro.

Kung ang iyong string ay naglalaman ng substring pagkatapos ay makakakuha ka ng match found , kung hindi, ito ay magbabalik ng walang nahanap na tugma. Sa aming halimbawa, gusto naming malaman kung ang aming pangunahing string na " Ang kaligayahan ay isang pagpipilian " ay naglalaman ng salitang " pagpipilian " o hindi. Tulad ng ginagawa nito, nakakakuha kami ng isang Nahanap na tugma na resulta.

7. VBA to Find String in a Cell Range

Maaari kang maghanap para sa isang partikular na text sa isang cell range ng string at magbalik ng isang partikular na string.

Tingnan ang sumusunod na halimbawa kung saan namin gagawin hanapin ang “ Dr. ” at kapag may tugma ay babalik ito ng “ Doktor ”.

  • Nasa ibaba ang code para makuha ang resultang tinalakay sa itaas,
3233

  • Patakbuhin ang code at ang resulta ay ipinapakita sa ibaba

  • Maaari mong baguhin ang macro ayon sa iyong pangangailangan. Halimbawa, kung gusto moupang mahanap ang “ Prof. ” sa anumang cell ng string, at kunin ang “ Professor ” bilang pagbabalik, pagkatapos ay ipasa lang ang “ Prof. ” bilang value sa halip na “ Dr .” sa ika-4 na linya ng macro at " Propesor " sa halip na " Doktor " sa ika-5 linya ng macro at tukuyin ang numero ng hanay ng cell nang naaayon.

8. VBA to Find String in a Cell

Maaari ka ring maghanap ng partikular na text sa iisang cell ng string at magbalik ng partikular na string.

  • Kopyahin ang sumusunod na code at i-paste ito sa window ng code.
3660

Hahanapin nito ang “ Dr. ” sa Cell B5 at kung mahanap nito ang katugma ay ibabalik ang “ Doktor ” sa Cell C5 .

  • Maaari mong baguhin ang macro ayon sa iyong pangangailangan. Halimbawa, kung gusto mong hanapin ang “ Prof. ” sa anumang cell ng string, at kunin ang “ Professor ” bilang pagbabalik, pagkatapos ay ipasa lang ang “ Prof. ” bilang value sa halip na “ Dr .” sa ika-2 linya ng macro at " Propesor " sa halip na " Doktor " sa ika-3 linya ng macro at tukuyin ang cell reference number nang naaayon.

Konklusyon

Ipinakita sa iyo ng artikulong ito kung paano maghanap ng ilang partikular na text sa string sa Excel gamit ang VBA macro. Umaasa ako na ang artikulong ito ay naging lubhang kapaki-pakinabang sa iyo. Huwag mag-atubiling magtanong ng anumang mga katanungan tungkol saang paksa.

Si Hugh West ay isang napakaraming Excel trainer at analyst na may higit sa 10 taong karanasan sa industriya. May hawak siyang Bachelor's degree sa Accounting and Finance at Master's degree sa Business Administration. Si Hugh ay may hilig sa pagtuturo at nakabuo ng kakaibang diskarte sa pagtuturo na madaling sundin at maunawaan. Ang kanyang dalubhasang kaalaman sa Excel ay nakatulong sa libu-libong mag-aaral at propesyonal sa buong mundo na mapabuti ang kanilang mga kasanayan at maging mahusay sa kanilang mga karera. Sa pamamagitan ng kanyang blog, ibinahagi ni Hugh ang kanyang kaalaman sa mundo, nag-aalok ng mga libreng Excel tutorial at online na pagsasanay upang matulungan ang mga indibidwal at negosyo na maabot ang kanilang buong potensyal.