Paano Gamitin ang InStr Function sa VBA (3 Madaling Halimbawa)

  • Ibahagi Ito
Hugh West

Habang nagtatrabaho sa mga Excel VBA code, nakatagpo kami ng ilang built-in na function na nagko-convert ng isang kumplikadong gawain sa isang maliit na one-line na code. Ang InStr ay isang function na available sa Excel VBA na naghahanap ng partikular na string sa loob ng isa pang ibinigay na string simula sa isang partikular na posisyon. Ngayon ay ipapakita ko kung paano mo magagamit ang InStr function sa VBA para maghanap ng partikular na string sa loob ng isa pang ibinigay na string.

I-download ang Practice Workbook

InStr Function.xlsm

Panimula sa VBA InStr Function

  • Buod

Naghahanap ng partikular na string sa loob ng isang partikular na string, simula sa isang partikular na posisyon. Kung makakita ng tugma, ibinabalik ang posisyon sa ibinigay na string kung saan nagsimula ang laban.

  • Syntax

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

  • Mga Argumento
ARGUMENTO KAILANGANG DESCRIPTION

[start] Opsyonal Ang posisyon kung saan ito magsisimulang maghanap. Ang default ay 1.
string1 Kinakailangan Ang string kung saan ito naghahanap ng ibinigay na string.
string2 Kinakailangan Ang string na hinahanap nito sa loob ng ibinigay na string.
[ihambing] Opsyonal Isang numerong halaga sa pagitan ng {-1,0,1,2} na tumutukoy sa uri ng paghahambing. Angang default ay -1 (vbUseCompareOption). Kung hindi tinukoy ang Option Compare statement, gawin ang Binary Comparison.

Tandaan:

  • Kahit na ang [start] argument at ang [compare] argument ay opsyonal, kailangan mo ang [start] argument kung tinukoy mo ang [compare] argument. Kung hindi, magdudulot ito ng error.
  • Kung alinman sa isa o pareho ng [start] argument at ang [compare] argument ay Null , makakaharap ka ng isang error.
  • Ang apat na tinukoy na halaga sa argumento na [compare] ay nagsasagawa ng apat na magkakaibang uri ng paghahambing. Ang mga ito ay binanggit sa ibaba:
VALUE PATULOY DESCRIPTION

-1 vbUseCompareOption Isinasagawa ang paghahambing na tinukoy sa ang Option Compare statement.
0 vbBinaryCompare Nagsasagawa ng Binary na paghahambing.
1 vbTextCompare Nagsasagawa ng paghahambing ng teksto.
2 vbDatabaseCompare Nagsasagawa ng paghahambing batay sa iyong database .
  • Option Compare statement ay isang pahayag na ibinigay bago magsimula ang pangunahing VBA code. Tinutukoy nito kung maghahanap ang code ng Binary Comparison o Text Comparison kapag kinakailangan.

Option Compare Text

    • Sa simpleng termino , Binary Comparison ay nangangahulugang case-sensitivepaghahambing.
    • Sa mga simpleng termino , ang Text Comparison ay nangangahulugang case-insensitive na paghahambing.
  • Return Value
    • Ibinabalik ang posisyon sa string1 kung saan nagsimula ang string2 .
    • Kung sakaling hindi makita ang string2 sa loob ng string1 simula sa start na posisyon, nagbabalik ng 0.
    • Kung ang string1 ay zero-length, nagbabalik ng 0.
    • Kung ang string2 ay zero-length, ibinabalik ang argumento start .
    • At panghuli, kung alinman sa string1 o string2 ay Null , nagbabalik ng error.

3 Madaling Halimbawang Gamitin ang VBA InStr Function

In sa seksyong ito, makikita natin ang tatlong madaling halimbawa ng paglalapat ng VBA InStr function sa Excel. Tingnan natin ang unang halimbawa ng InStr function sa mga VBA code.

1. Pagpapasya Kung ang isang Address ay isang Email Address o Hindi sa pamamagitan ng Paggamit ng VBA InStr Function

Dito, kumuha kami ng set ng data na naglalaman ng ilang contact address ng mga customer. Ang layunin namin dito ay tukuyin kung ang mga address ay mga email address o hindi.

Ngayon ay bubuo kami ng VBA code gamit ang InStr function upang matukoy kung ito ay isang Email Address o hindi. Upang gawin iyon, sundin ang mga hakbang sa ibaba.

Mga Hakbang:

  • Sa simula, pumunta sa tab na Developer at piliin ang Visual Basic ( O pindutin ang Alt+F11) para buksan ang VBA window.

  • Pagkatapos, sa VBA window, pumunta sa Insert > Module .

  • Pagkatapos noon, sa module, i-paste ang sumusunod na code:
7221

  • Bukod dito, gumawa kami ng function na tinatawag na DECISION . Ito ang magpapasya kung ang isang address ay isang email address o hindi. Ilapat natin ang function sa set ng data na mayroon tayo.
  • Sa cell C5 , isulat ang sumusunod na formula at pagkatapos ay i-autofill ang iba pang mga cell gamit ang Fill Handle .
=DECISION(B5)

  • Tulad ng nakikita namin, natukoy namin ang bawat address kung ito ay isang email address o hindi.

🎓 Paano Gumagana ang Code?

  • Function DECISION(string1 As String)

Una, lumilikha ito ng function na tinatawag na DECISION na may string argument na pinangalanang string1 .

  • Dim Position Bilang Integer

Nagdedeklara ito ng integer variable na pinangalanang Position .

  • Posisyon = InStr(1, string1, “@”, 0)

Ito ang nagtatalaga ng value ng Posisyon variable bilang output ng InStr function na may mga argumento 1, string1, “@” at 0 . Sa madaling salita, itinatalaga nito ang posisyon sa address kung saan mayroong “@” .

  • If Position = 0 Then DECISION = “Not Email”

Itinatalaga nito ang output ng DECISION function bilang “Hindi Email” , kung ang Posisyon variable ay 0 , ibig sabihin, walang “@” sa address.

(Alalahanin kung anumang string ay hindi nahanap sa loob ng ibinigay na string, ang InStr function ay nagbabalik ng 0 ).

  • Else DECISION = “Email”

Ito ay nagtatalaga ng output ng DECISION function bilang “Email” kung mayroong “@” sa address. Kaya ang mga address kung saan mayroong “@” ay ikinategorya bilang Email , at ang iba ay ikinategorya bilang “Hindi Email” .

Mga Katulad na Pagbasa

  • Paano Gamitin ang VBA UCASE function sa Excel (4 na Halimbawa)
  • Gumamit ng MsgBox Function sa Excel VBA (Isang Kumpletong Patnubay)
  • Paano gamitin ang VBA SPLIT function sa Excel (5 Halimbawa)
  • Gumamit ng LCase Function sa VBA sa Excel (Na may 4 na Halimbawa)
  • Paano Gamitin ang Fix Function sa Excel VBA (4 na Halimbawa)

2. Paggamit ng VBA InStr Function para sa Pag-extract ng Extension ng Ilang Email Address

Dito, mayroon kaming listahan ng ilang Email Address ng ilang customer. Sa pagkakataong ito kukunin namin ang extension ng email address tulad ng kung mayroon sila gmail.com o yahoo.com .

Upang gawin iyon, sundin ang mga hakbang sa ibaba.

Mga Hakbang:

  • Upang magsimula, tulad ng nakaraang pamamaraan, magbukas ng bagong VBA module at i-paste ang sumusunod na code sa window.
8571

  • Sa karagdagan, gumawa kami ng function na tinatawag EXTENSION . Kinukuha nito ang extension ng anumang email address.
  • Higit pa rito, ilapat natin ang function na ito sa set ng data na mayroon tayo. Una, ilagay ang formula na ito sa cell C5 at pagkatapos ay i-double click ang Fill Handle .
=EXTENSION(B5)

  • Sa huli, makikita natin na matagumpay nating na-extract ang Extension ng lahat ng Email.

🎓 Paano Gumagana ang Code?

  • Function EXTENSION(Email Bilang String)

Gumagawa ito ng bagong function na tinatawag na EXTENSION , na may string argument na pinangalanang Email .

  • Dim Position Bilang Integer

Ang bahaging ito ay nagdedeklara ng integer variable na pinangalanang Position .

  • Posisyon = InStr(1, Email, “@”, 0)

Ito ay nagtatalaga ng halaga ng Posisyon variable bilang output ng InStr function na may mga argumento 1, Email, “@” at 0 . Sa madaling salita, itinatalaga nito ang posisyon sa Email kung saan mayroong “@” .

  • EXTENSION = Kanan(Email, (Len (Email) – Posisyon))

Ang bahaging ito ay nagtatalaga ng output ng EXTENSION function bilang mga character pagkatapos ng simbolo na “@” . Ito ang kinakailangang extension ng Email .

3. Pag-extract ng Una o Apelyido mula sa isang Pangalan sa pamamagitan ng Paggamit ng VBA InStr Function

Sa wakas, magsasagawa kami ng kakaibang gawain. Sa pagkakataong ito ay mayroon kaming mga pangalan ng ilang empleyado ngisang kumpanya. At susubukan naming bumuo ng function para kunin ang alinman sa unang pangalan o apelyido ng mga empleyado.

Upang gawin iyon, sundin ang mga hakbang sa ibaba.

Mga Hakbang:

  • Una, katulad ng paraan 1 , i-paste ang code sa ibaba sa isang bagong module sa VBA  window.
6208

  • Dito, gumawa kami ng function na tinatawag na SHORTNAME na kumukuha ng alinman sa unang pangalan o apelyido mula sa isang pangalan. Ilapat natin ang formula na ito sa aming set ng data.
  • Sa una, para i-extract ang unang pangalan, isulat ang formula sa ibaba sa cell C5 .
=SHORTNAME(B5,-1)

  • Panghuli, para kunin ang mga apelyido, isusulat namin ang sumusunod na formula sa D5 :
=SHORTNAME(B5,1)

  • Pagkatapos, kung awtomatiko naming pupunuin ang natitirang mga cell gamit ang Fill Handler , makikita natin ang gusto nating resulta.

🎓 Paano Gumagana ang Code?

  • Function SHORTNAME(Pangalan Bilang String, First_or_Last Bilang Integer)

Gumagawa ito ng bagong function na tinatawag na SHORTNAME na may isang String argument na pinangalanang Pangalan at isang Integer Argument na pinangalanang First_or_Last .

  • Dim Break Bilang Integer

Ang bahaging ito ay nagdedeklara ng bagong integer variable na pinangalanang Break .

  • Break = InStr(1, Pangalan, ” “, 0)

Itinatalaga nito ang halaga ng variable na Break bilang output ng function na InStr kasama ng mga argumento 1, Pangalan, “ ” at 0 . Sa madaling salita, itinatalaga nito ang posisyon sa Pangalan kung saan mayroong space (“ ”).

  • If First_or_Last = -1 Then SHORTNAME = Left(Name, Break – 1)

Itinatalaga ng linyang ito ang output ng SHORTNAME function bilang mga character bago ang space , kung ang argumentong First_or_Last ay -1. Ito ang unang pangalan.

  • SHORTNAME = Kanan(Pangalan, Len(Pangalan) – Break)

Ang bahaging ito ay nagtatalaga ng output ng Ang SHORTNAME ay gumagana bilang mga character pagkatapos ng space , kung ang argument na First_or_Last ay 1. Ito ang apelyido.

Konklusyon

Sa ganitong paraan, maaari kang sumulat ng mga VBA code gamit ang InStr function na nakakaalam ng posisyon ng isang partikular na string sa loob ng ibang ibinigay string, at pagkatapos ay maaari kang lumikha ng iyong sariling mga function para sa iba't ibang gamit. Higit pa rito, kung mayroon kang anumang mga tanong, huwag mag-atubiling magtanong sa amin.

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.