Talaan ng nilalaman
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.
|
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,
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.