Hvernig á að nota InStr aðgerð í VBA (3 auðveld dæmi)

  • Deildu Þessu
Hugh West

Þegar við vinnum með Excel VBA kóða, rekumst við á nokkrar innbyggðar aðgerðir sem breyta flóknu verkefni í lítinn einnarlínu kóða. InStr er slík aðgerð sem er fáanleg í Excel VBA sem leitar að tilteknum streng innan annars tiltekins strengs frá tiltekinni staðsetningu. Í dag mun ég sýna hvernig þú getur notað InStr aðgerðina í VBA til að leita að tilteknum streng innan annars tiltekins strengs.

Hlaða niður æfingarvinnubók

InStr Function.xlsm

Kynning á VBA InStr Function

  • Yfirlit

Leitar að ákveðnum streng innan ákveðins strengs, byrjað á tiltekinni staðsetningu. Ef finna samsvörun, skilar stöðunni í tilteknum streng þar sem samsvörun byrjaði.

  • Syntax

InStr([byrja ],streng1,streng2,[samanburður])

  • Rök
RÖK KRAFA LÝSING

[byrja] Valfrjálst Staðan sem það mun byrja að leita frá. Sjálfgefið er 1.
streng1 Áskilið Strenginn sem hann leitar innan að tilteknum streng.
streng2 Áskilið Strenginn sem hann leitar að innan ákveðins strengs.
[samanburður] Valfrjálst Talagildi á milli {-1,0,1,2} sem tilgreinir tegund samanburðar. Thesjálfgefið er -1 (vbUseCompareOption). Ef valmöguleikasamanburðurinn er ekki tilgreindur skaltu framkvæma tvíundarsamanburð.

Athugið:

  • Þó að [byrja] rökin og [samanber] rökin eru valfrjáls, þú þarft [byrja] rökin ef þú tilgreinir [samanber] rökin. Annars mun það koma upp villu.
  • Ef annaðhvort eða báðir [byrja] röksemdirnar og [samanber] rökin eru Null , munt þú standa frammi fyrir villu.
  • Fjögur tilgreind gildi í [samanburður] röksemdinni framkvæma fjórar mismunandi gerðir af samanburði. Þeirra er getið hér að neðan:
GILDIM STAÐFULLT LÝSING

-1 vbUseCompareOption Framkvæmir samanburðinn sem tilgreindur er í valkostasamanburðaryfirlýsinguna.
0 vbBinaryCompare Framkvæmir tvíundarsamanburð.
1 vbTextCompare Framkvæmir textasamanburð.
2 vbDatabaseCompare Framkvæmir samanburð byggt á gagnagrunninum þínum .
  • Valkostur Samanburður setning er yfirlýsing sem gefin er upp áður en aðal VBA kóðinn byrjar. Það tilgreinir hvort kóðinn leitar að tvíundarsamanburði eða textasamanburði þegar þess er krafist.

Valkostur Berðu saman texta

    • Í einföldu máli þýðir tvöfaldur samanburður hástafaviðkvæmursamanburður.
    • Í einföldum orðum þýðir textasamanburður aðstæðulausan samanburð.
  • Return Value
    • Skilar stöðunni í streng1 sem streng2 byrjaði frá.
    • Ef streng2 finnst ekki innan strengs1 frá byrjun stöðu, skilar 0.
    • Ef strengur1 er núll að lengd, skilar 0.
    • Ef streng2 er núll að lengd, skilar viðfanginu byrjun .
    • Og að lokum, ef einhver af streng1 eða streng2 er Null , skilar villu.

3 auðveld dæmi til að nota VBA InStr aðgerð

Í Í þessum hluta munum við sjá þrjú auðveld dæmi um að nota VBA InStr aðgerðina í Excel. Við skulum sjá fyrsta dæmið um InStr fallið í VBA kóða.

1. Ákvörðun um hvort heimilisfang sé netfang eða ekki með því að nota VBA InStr aðgerð

Hér höfum við tekið gagnasett sem inniheldur nokkur tengiliðsföng viðskiptavina. Markmið okkar hér verður að bera kennsl á hvort heimilisföngin séu netföng eða ekki.

Nú munum við þróa VBA kóða með því að nota InStr aðgerðina til að auðkenna hvort sem það er netfang eða ekki. Til að gera það, fylgdu skrefunum hér að neðan.

Skref:

  • Í upphafi, farðu á flipann Developer og veldu Visual Basic (Eða ýttu á Alt+F11) til að opna VBA glugga.

  • Síðan, í VBA glugganum, farðu í Insert > Module .

  • Eftir það, á einingunni, límdu eftirfarandi kóða:
8609

  • Þar að auki höfum við búið til fall sem kallast DECISION . Það ákveður hvort heimilisfang er netfang eða ekki. Við skulum nota fallið á gagnasettið sem við höfum.
  • Á reit C5 , skrifaðu niður eftirfarandi formúlu og fylltu síðan út restina af reitunum með Fill Handle .
=DECISION(B5)

  • Eins og við sjáum höfum við auðkennt hvert netfang hvort það sé netfang eða ekki.

🎓 Hvernig virkar kóðinn?

  • Hugsun DECISION(streng1 Sem strengur)

Í fyrsta lagi býr þetta til fall sem kallast DECISION með string argument sem heitir string1 .

  • Dim staðsetning sem heiltala

Það lýsir yfir heiltölubreytu sem heitir Staðsetning .

  • Staðsetning = InStr(1, string1, “@”, 0)

Þetta úthlutar gildi Staða breytu sem úttak InStr fallsins með breytunum 1, streng1, „@“ og 0 . Í stuttu máli, þetta úthlutar stöðunni í heimilisfanginu þar sem er “@” .

  • Ef Staða = 0 Þá ÁKVÖRÐUN = „Ekki tölvupóstur“

Það úthlutar úttakinu á DECISION fallinu sem „Ekki tölvupóstur“ , ef Staðan breytan er 0 , það þýðir að það var ekkert “@” í vistfanginu.

(Mundu ef einhver strengur finnst ekki innan tiltekins strengs,

1>InStr fall skilar 0 ).
  • Annars ÁKVÖRÐUN = „Tölvupóstur“

Þetta úthlutar úttak DECISION virka sem “Tölvupóstur” ef það var “@” í heimilisfanginu. Þannig eru heimilisföngin þar sem „@“ er flokkuð sem Tölvupóstur og restin flokkuð sem “Ekki tölvupóstur“ .

Svipuð lestur

  • Hvernig á að nota VBA UCASE aðgerð í Excel (4 dæmi)
  • Notaðu MsgBox aðgerð í Excel VBA (A Complete Guideline)
  • Hvernig á að nota VBA SPLIT aðgerð í Excel (5 dæmi)
  • Notaðu LCase aðgerð í VBA í Excel (Með 4 dæmi)
  • Hvernig á að nota Fix Function í Excel VBA (4 dæmi)

2. Nota VBA InStr aðgerð til að Taka út framlengingu sumra netfönga

Hér höfum við lista yfir nokkur netföng sumra viðskiptavina. Að þessu sinni munum við draga framlengingu netfangsins út eins og hvort þeir séu með gmail.com eða yahoo.com .

Til að gera það, fylgdu skrefunum hér að neðan.

Skref:

  • Til að byrja með, eins og fyrri aðferð, opnaðu nýja VBA mát og límdu eftirfarandi kóða í gluggann.
3671

  • Að auki höfum við búið til fall sem heitir FRÆÐING . Það dregur út framlengingu hvaða netfangs sem er.
  • Ennfremur skulum við nota þessa aðgerð á gagnasettið sem við höfum. Sláðu fyrst inn þessa formúlu í reit C5 og tvísmelltu síðan á Fill Handle .
=EXTENSION(B5)

  • Að lokum getum við séð að okkur hefur tekist að draga framlengingu allra tölvupóstanna út.

🎓 Hvernig virkar kóðinn?

  • Aðgerð EXTENSION(Tölvupóstur sem strengur)

Þetta býr til nýja aðgerð sem kallast EXTENSION , með string argument sem heitir Tölvupóstur .

  • Dim staðsetning sem heiltala

Þessi hluti lýsir yfir heiltölubreytu sem heitir Staðsetning .

  • Staðsetning = InStr(1, Email, “@”, 0)

Þetta úthlutar gildi Staðsetning breytu sem úttak InStr fallsins með breytunum 1, Email, “@” og 0 . Í stuttu máli, þetta úthlutar stöðu í Tölvupóstinum þar sem er “@” .

  • EXTENTION = Right(Email, (Len (Tölvupóstur) – Staða))

Þessi hluti úthlutar úttakinu á EXTENSION fallinu sem stöfunum á eftir tákninu “@” . Þetta er nauðsynleg framlenging á Tölvupóstinum .

3. Að draga út fornafn eða eftirnafn úr nafni með því að nota VBA InStr aðgerð

Að lokum munum við framkvæma einstaklega öðruvísi verkefni. Að þessu sinni höfum við nöfn nokkurra starfsmannafyrirtæki. Og við munum reyna að búa til fall til að draga út annað hvort fornafn eða eftirnafn starfsmanna.

Til að gera það skaltu fylgja skrefunum hér að neðan.

Skref:

  • Í fyrsta lagi, svipað og aðferð 1 , límdu kóðann hér að neðan í nýja einingu í VBA  glugganum.
9545

  • Hér höfum við búið til fall sem heitir SHORTNAME sem dregur annað hvort fornafnið eða eftirnafnið úr nafni. Við skulum nota þessa formúlu á gagnasafnið okkar.
  • Í fyrstu, til að draga út fornafnið, skrifaðu formúluna hér að neðan í reit C5 .
=SHORTNAME(B5,-1)

  • Að lokum, til að draga út eftirnöfnin, skrifum við niður eftirfarandi formúlu í D5 :
=SHORTNAME(B5,1)

  • Síðan, ef við fyllum sjálfkrafa út restina af frumunum með Fill Handler , við munum sjá tilætluðum árangri.

🎓 Hvernig virkar kóðinn?

  • Aðgerð SHORTNAME(Name As String, First_or_Last As Heiltala)

Það býr til nýja aðgerð sem heitir SHORTNAME með einni String röksemd sem heitir Nafn og einni heiltölu rök sem heitir First_or_Last .

  • Dim Break As Heiltala

Þessi hluti lýsir yfir nýrri heiltölubreytu sem heitir Break .

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

Það úthlutar gildi Break breytunnar sem úttak InStr fallsins með frumefnunum 1, Nafn, “ ” og 0 . Í stuttu máli, þetta úthlutar stöðu í Nafni þar sem er bil (" ”).

  • Ef First_or_Last = -1 Þá SHORTNAME = Left(Name, Break – 1)

Þessi lína úthlutar úttakinu á SHORTNAME fallinu sem stöfunum á undan bilinu , ef First_or_Last rökin eru -1. Þetta er fornafnið.

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

Þessi hluti úthlutar úttakinu á SHORTNAME virka sem stafir á eftir bilinu , ef First_or_Last frumbreytan er 1. Þetta er eftirnafnið.

Niðurstaða

Þannig er hægt að skrifa VBA kóða með InStr fallinu sem finnur út staðsetningu ákveðins strengs innan annars gefinns streng, og þá geturðu búið til þínar eigin aðgerðir til margvíslegra nota. Ennfremur, ef þú hefur einhverjar spurningar skaltu ekki hika við að spyrja okkur.

Hugh West er mjög reyndur Excel þjálfari og sérfræðingur með yfir 10 ára reynslu í greininni. Hann er með BA gráðu í bókhaldi og fjármálum og meistaragráðu í viðskiptafræði. Hugh hefur ástríðu fyrir kennslu og hefur þróað einstaka kennsluaðferð sem auðvelt er að fylgja eftir og skilja. Sérfræðiþekking hans á Excel hefur hjálpað þúsundum nemenda og fagfólks um allan heim að bæta færni sína og skara fram úr í starfi. Í gegnum bloggið sitt deilir Hugh þekkingu sinni með heiminum og býður upp á ókeypis Excel námskeið og netþjálfun til að hjálpa einstaklingum og fyrirtækjum að ná fullum möguleikum.