Si të përdorni funksionin InStr në VBA (3 shembuj të thjeshtë)

  • Shperndaje Kete
Hugh West

Gjatë punës me kodet Excel VBA, hasim disa funksione të integruara që konvertojnë një detyrë komplekse në një kod të vogël me një rresht. InStr është një funksion i tillë i disponueshëm në Excel VBA që kërkon një varg të veçantë brenda një vargu tjetër të caktuar duke filluar nga një pozicion i caktuar. Sot do të tregoj se si mund të përdorni funksionin InStr në VBA për të kërkuar një varg specifik brenda një vargu tjetër të caktuar.

Shkarko librin e punës praktike

InStr Function.xlsm

Hyrje në VBA InStr Function

  • Përmbledhje

Kërkon për një varg specifik brenda një vargu të caktuar, duke filluar nga një pozicion i caktuar. Nëse gjen një përputhje, kthen pozicionin në vargun e dhënë nga ku filloi ndeshja.

  • Sintaksa

InStr([fillimi ],string1,string2,[krahaso])

  • Argumentet
ARGUMENT KËRKESA PERSHKRIMI

<[start] Opsionale Pozicioni nga i cili do të fillojë kërkimi. Parazgjedhja është 1.
string1 Kërkohet Vargu brenda të cilit ai kërkon një varg të caktuar.
string2 Kërkohet Vargu që ai kërkon brenda një vargu të caktuar.
<[krahaso] Opsionale Një vlerë numerike ndërmjet {-1,0,1,2} që specifikon llojin e krahasimit. Tëdefault është -1 (vbUseCompareOption). Nëse deklarata Krahasimi i opsioneve nuk është specifikuar, kryeni Krahasimin Binar.

Shënim:

  • Megjithëse Argumenti [fillo] dhe argumenti [krahaso] janë opsionale, ju duhet argumenti [fillo] nëse specifikoni argumentin [krahaso] . Përndryshe, do të ngrejë një gabim.
  • Nëse njëri ose të dy nga argumentet [fillo] dhe argumenti [krahaso] është Null , do të përballeni me një gabim.
  • Katër vlerat e specifikuara në argumentin [krahaso] kryejnë katër lloje të ndryshme krahasimi. Ato janë përmendur më poshtë:
VLERA KOSTANTE PËRSHKRIMI

-1 vbUseCompareOption Kryen krahasimin e specifikuar në deklarata Option Compare.
0 vbBinaryCompare Kryen një krahasim binar.
1 vbTextCompare Kryen një krahasim teksti.
2 vbDatabaseCompare Kryen një krahasim bazuar në bazën e të dhënave tuaja Deklarata
  • Opsioni Krahaso është një deklaratë e dhënë përpara se të fillojë kodi kryesor VBA. Ai specifikon nëse kodi do të kërkojë një Krahasim Binar ose Krahasim Teksti kur kërkohet.

Opsioni Krahasoni Tekstin

    • Me fjalë të thjeshta , Krahasimi Binar do të thotë i ndjeshëm ndaj rastevekrahasimi.
    • Me fjalë të thjeshta , Krahasimi i tekstit do të thotë krahasim i pandjeshëm ndaj rasteve.
  • Vlera e kthimit
    • Kthen pozicionin në string1 nga i cili filloi string2 .
    • Në rast se string2 nuk gjendet brenda string1 duke filluar nga pozicioni start , kthen 0.
    • Nëse string1 është me gjatësi zero, kthen 0.
    • Nëse string2 është me gjatësi zero, kthen argumentin start .
    • Dhe së fundi, nëse ndonjë nga string1 ose string2 është Null , kthen një gabim.

3 Shembuj të thjeshtë për të përdorur funksionin VBA InStr

Në në këtë seksion, do të shohim tre shembuj të thjeshtë të aplikimit të funksionit VBA InStr në Excel. Le të shohim shembullin e parë të funksionit InStr në kodet VBA.

1. Vendosja nëse një adresë është një adresë emaili apo jo duke përdorur funksionin VBA InStr

Këtu, ne kemi marrë një grup të dhënash që përmban disa adresa kontakti të klientëve. Qëllimi ynë këtu do të jetë të identifikojmë nëse adresat janë adresa emaili apo jo.

Tani do të zhvillojmë një kod VBA duke përdorur funksionin InStr për të identifikuar nëse është një adresë emaili apo jo. Për ta bërë këtë, ndiqni hapat e mëposhtëm.

Hapat:

  • Në fillim, shkoni te skeda Zhvilluesi dhe zgjidhni Visual Basic (Ose shtypni Alt+F11) për të hapur VBA dritare.

  • Më pas, në dritaren VBA , shkoni te Fut > Moduli .

  • Pas kësaj, në modul, ngjisni kodin e mëposhtëm:
7994

  • Për më tepër, ne kemi krijuar një funksion të quajtur VENDIM . Ai vendos nëse një adresë është një adresë emaili apo jo. Le të zbatojmë funksionin në grupin e të dhënave që kemi.
  • Në qelizën C5 , shkruani formulën e mëposhtme dhe më pas plotësoni automatikisht pjesën tjetër të qelizave duke përdorur Plotësimi Handle .
=DECISION(B5)

  • Siç mund ta shohim, ne kemi identifikuar secilën adresë nëse është një adresë emaili apo jo.

🎓 Si funksionon kodi?

  • Funksioni DECISION(string1 As String)

Së pari, kjo krijon një funksion të quajtur VENDIM me një argumenti i vargut me emrin string1 .

  • Pozicioni i zbehtë si numër i plotë

Ai deklaron një ndryshore numër të plotë të quajtur Pozicioni .

  • Pozicioni = InStr(1, string1, "@", 0)

Kjo cakton vlerën e Poziciononi variablin si dalje të funksionit InStr me argumentet 1, string1, "@" dhe 0 . Shkurtimisht, kjo cakton pozicionin në adresën ku ka një “@” .

  • Nëse Pozicioni = 0 Atëherë VENDIM = “Jo email”

Ai cakton daljen e funksionit VENDIM si “Jo Email” , nëse Pozicioni ndryshorja është 0 , që do të thotë se nuk kishte “@” në adresë.

(Kujtoni nëse ndonjë varg nuk gjendet brenda vargut të dhënë, InStr kthen 0 ).

  • Else DECISION = "Email"

Kjo cakton prodhimi i funksionit VENDIM si “Email” nëse kishte një “@” në adresë. Kështu adresat ku ka "@" kategorizohen si Email , dhe pjesa tjetër kategorizohen si "Jo Email" .

Lexime të ngjashme

  • Si të përdorni funksionin VBA UCASE në Excel (4 shembuj)
  • Përdorni funksionin MsgBox në Excel VBA (Një udhëzues i plotë)
  • Si të përdorni funksionin VBA SPLIT në Excel (5 shembuj)
  • Përdorni funksionin LCase në VBA në Excel (Me 4 Shembuj)
  • Si të përdorni funksionin Fix në Excel VBA (4 Shembuj)

2. Përdorimi i funksionit VBA InStr për Nxjerrja e zgjerimit të disa adresave të postës elektronike

Këtu, ne kemi një listë të disa adresave të postës elektronike të disa klientëve. Këtë herë ne do të nxjerrim zgjerimin e adresës së emailit, si p.sh. nëse ata kanë gmail.com ose yahoo.com .

Për ta bërë këtë, ndiqni hapat e mëposhtëm.

Hapat:

  • Për të filluar, si metoda e mëparshme, hapni një VBA<2 të re> modulin dhe ngjisni kodin e mëposhtëm në dritare.
5810

  • Përveç kësaj, ne kemi krijuar një funksion të quajtur ZGJATIM . Ai nxjerr zgjerimin e çdo adrese emaili.
  • Për më tepër, le ta zbatojmë këtë funksion në grupin e të dhënave që kemi. Fillimisht, futni këtë formulë në qelizën C5 dhe më pas klikoni dy herë në Plotësoni dorezën .
=EXTENSION(B5)

  • Së fundi, mund të shohim se kemi nxjerrë me sukses Zgjerimin e të gjitha emaileve.

🎓 Si funksionon kodi?

  • Funksioni EXTENSION(Email si varg)

Kjo krijon një funksion të ri të quajtur EXTENSION , me një argumenti i vargut me emrin Email .

  • Pozicioni i zbehtë si numër i plotë

Kjo pjesë deklaron një ndryshore numër të plotë të quajtur Pozicioni .

  • Pozicioni = InStr(1, Email, "@", 0)

Kjo cakton vlerën e <1 Variabli>Pozicioni si rezultat i funksionit InStr me argumentet 1, Email, "@" dhe 0 . Shkurtimisht, kjo cakton pozicionin në Email ku ka një “@” .

  • EXTENSION = Right(Email, (Len (Email) – Pozicioni))

Kjo pjesë cakton daljen e funksionit EXTENSION si karaktere pas simbolit “@” . Kjo është zgjerimi i kërkuar i Email .

3. Nxjerrja e emrit ose mbiemrit nga një emër duke përdorur funksionin VBA InStr

Më në fund, ne do të kryejmë një detyrë unike të ndryshme. Kësaj radhe kemi emrat e disa punonjësve tënjë kompani. Dhe ne do të përpiqemi të ndërtojmë një funksion për të nxjerrë ose emrin ose mbiemrin e punonjësve.

Për ta bërë këtë, ndiqni hapat e mëposhtëm.

0> Hapat:

  • Së pari, ngjashëm me metodën 1 , ngjisni kodin më poshtë në një modul të ri në dritaren VBA .
8612

  • Këtu, ne kemi krijuar një funksion të quajtur SHORTEMRI që nxjerr ose emrin ose mbiemrin nga një emër. Le ta zbatojmë këtë formulë në grupin tonë të të dhënave.
  • Në fillim, për të nxjerrë emrin e parë, shkruani formulën më poshtë në qelizën C5 .
=SHORTNAME(B5,-1)

  • Së fundi, për të nxjerrë mbiemrat, shkruajmë formulën e mëposhtme në D5 :
=SHORTNAME(B5,1)

  • Më pas, nëse plotësojmë automatikisht pjesën tjetër të qelizave me Fill Handler , do të shohim rezultatin tonë të dëshiruar.

🎓 Si funksionon kodi?

  • Funksioni SHORTNAME(Emri si varg, i pari_ose_i fundit si numër i plotë)

Krijon një funksion të ri të quajtur SHORTNAME me një argument të vargut të quajtur Emri dhe një argument me numër të plotë të quajtur First_or_Last .

  • Dim Break As Integer

Kjo pjesë deklaron një variabël të ri me numër të plotë të quajtur Break .

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

Ai cakton vlerën e ndryshores Break si dalje të funksionit InStr me argumentet 1, Emri, “ ” dhe 0 . Shkurtimisht, kjo cakton pozicionin në Emri ku ka një hapësirë ​​ (“ ”).

  • Nëse First_or_Last = -1 Atëherë SHORTNAME = Left(Emri, Break – 1)

Kjo rresht cakton daljen e funksionit SHORTNAME si karaktere para hapësirës , nëse argumenti First_ose_Last është -1. Ky është emri i parë.

  • SHORTNAME = Right(Emri, Len(Name) – Break)

Kjo pjesë cakton daljen e SHORTNAME funksionojnë si karaktere pas hapësirës , nëse argumenti First_ose_Last është 1. Ky është mbiemri.

Përfundim

Në këtë mënyrë, ju mund të shkruani kode VBA me funksionin InStr i cili zbulon pozicionin e një vargu specifik brenda një tjetër të dhënë. string, dhe më pas mund të krijoni funksionet tuaja për përdorime të ndryshme. Për më tepër, nëse keni ndonjë pyetje, mos ngurroni të na pyesni.

Hugh West është një trajner dhe analist me përvojë të lartë në Excel me mbi 10 vjet përvojë në industri. Ai ka një diplomë Bachelor në Kontabilitet dhe Financë dhe një Master në Administrim Biznesi. Hugh ka një pasion për mësimdhënien dhe ka zhvilluar një qasje unike të mësimdhënies që është e lehtë për t'u ndjekur dhe kuptuar. Njohuritë e tij eksperte të Excel-it kanë ndihmuar mijëra studentë dhe profesionistë në mbarë botën të përmirësojnë aftësitë e tyre dhe të shkëlqejnë në karrierën e tyre. Nëpërmjet blogut të tij, Hugh ndan njohuritë e tij me botën, duke ofruar mësime falas në Excel dhe trajnime në internet për të ndihmuar individët dhe bizneset të arrijnë potencialin e tyre të plotë.