Ինչպես օգտագործել InStr ֆունկցիան VBA-ում (3 հեշտ օրինակ)

  • Կիսվել Սա
Hugh West

Excel VBA կոդերի հետ աշխատելիս մենք հանդիպում ենք մի քանի ներկառուցված գործառույթների, որոնք բարդ առաջադրանքը վերածում են փոքր մեկ տողային կոդի: InStr -ն այնպիսի ֆունկցիա է, որը հասանելի է Excel VBA-ում, որը որոնում է որոշակի տող մեկ այլ տողի մեջ՝ սկսած տվյալ դիրքից: Այսօր ես ցույց կտամ, թե ինչպես կարող եք օգտագործել InStr ֆունկցիան VBA-ում՝ մեկ այլ տրված տողի մեջ կոնկրետ տող որոնելու համար:

Ներբեռնեք պրակտիկայի աշխատանքային գիրքը

InStr Function.xlsm

Ներածություն VBA InStr ֆունկցիայի

  • Ամփոփում

Որոնում է որոշակի տող տվյալ տողի ներսում՝ սկսած տվյալ դիրքից: Եթե ​​գտնում է համընկնում, վերադարձնում է դիրքը տվյալ տողի մեջ, որտեղից սկսվել է համընկնումը:

  • Սինտաքս

InStr([սկիզբ ],string1,string2,[համեմատել])

  • Փաստարկներ
ՓԱՍՏԱՑՈՒՄ ՊԱՀԱՆՋ ՆԿԱՐԱԳՐՈՒԹՅՈՒՆ

[սկիզբ] Ըստ ցանկության Դիրքը, որտեղից այն կսկսի որոնումը: Կանխադրվածը 1 է:
string1 Պահանջվում է Տողը, որի շրջանակներում այն ​​փնտրում է տվյալ տողը:
string2 Պահանջվում է Տողը, որը որոնում է տվյալ տողի մեջ:
[համեմատել] Ընտրովի Թվային արժեք {-1,0,1,2}-ի միջև, որը սահմանում է համեմատության տեսակը: Այնլռելյայն -1 է (vbUseCompareOption): Եթե ​​Option Compare հայտարարությունը նշված չէ, կատարեք Երկուական համեմատություն:

Նշում.

  • Չնայած [սկսել] արգումենտը և [համեմատել] արգումենտը պարտադիր չեն, ձեզ անհրաժեշտ է [սկսել] արգումենտը, եթե նշեք [համեմատել] արգումենտը: Հակառակ դեպքում, այն կառաջացնի սխալ:
  • Եթե [սկսել] արգումենտներից մեկը կամ երկուսն էլ, և [համեմատել] արգումենտը Զուրկ է , դուք կբախվեք սխալի հետ:
  • [համեմատել] արգումենտում նշված չորս արժեքները կատարում են չորս տարբեր տեսակի համեմատություններ: Դրանք նշված են ստորև՝
ԱՐԺԵՔԸ Մշտական ՆԿԱՐԱԳՐՈՒԹՅՈՒՆ

-1 vbUseCompareOption Կատարում է նշված համեմատությունը. Option Compare հայտարարությունը:
0 vbBinaryCompare Կատարում է Երկուական համեմատություն:
1 vbTextCompare Կատարում է տեքստի համեմատություն:
2 vbDatabaseCompare Կատարում է համեմատություն՝ հիմնված ձեր տվյալների բազայի վրա .
  • Option Compare հայտարարությունը հայտարարություն է, որը տրամադրվում է նախքան հիմնական VBA կոդը սկսելը: Այն սահմանում է, թե արդյոք կոդը կփնտրի երկուական համեմատություն կամ տեքստի համեմատություն, երբ պահանջվի: Պարզ բառերով , Երկուական Համեմատություն նշանակում է մեծատառերի զգայունհամեմատություն:
  • Պարզ բառերով , Text Comparison նշանակում է մեծատառերի համեմատություն:
  • Return Value
    • Վերադարձնում է string1 -ի դիրքը, որտեղից սկսվել է string2 :
    • Եթե string2 չգտնվի: string1 -ի սահմաններում սկսած start դիրքից, վերադարձնում է 0:
    • Եթե string1 -ը զրոյական երկարություն ունի, վերադարձնում է 0:
    • Եթե string2 -ը զրոյական երկարություն ունի, վերադարձնում է start արգումենտը:
    • Եվ վերջապես, եթե string1 -ից որևէ մեկը կամ string2 Null է, վերադարձնում է սխալ:
  • 3 հեշտ օրինակներ VBA InStr ֆունկցիան օգտագործելու համար

    In Այս բաժնում մենք կտեսնենք Excel-ում VBA InStr ֆունկցիայի կիրառման երեք հեշտ օրինակ: Տեսնենք InStr ֆունկցիայի առաջին օրինակը VBA կոդերում:

    1. Որոշել՝ արդյոք հասցեն էլփոստի հասցե է, թե ոչ օգտագործելով VBA InStr ֆունկցիան

    Այստեղ մենք վերցրել ենք տվյալների հավաքածու, որը պարունակում է հաճախորդների կոնտակտային որոշ հասցեներ: Մեր նպատակն այստեղ կլինի պարզել՝ արդյոք հասցեները էլփոստի հասցեներ են, թե ոչ:

    Այժմ մենք կմշակենք VBA կոդ՝ օգտագործելով InStr գործառույթը նույնականացնելու համար: լինի դա էլփոստի հասցե, թե ոչ: Դա անելու համար հետևեք ստորև նշված քայլերին:

    Քայլեր.

    • Սկզբում գնացեք Developer ներդիր և ընտրեք Visual Basic (Կամ սեղմեք Alt+F11) VBA բացելու համարպատուհան։

    • Այնուհետև VBA պատուհանում անցեք Տեղադրել > Մոդուլ ։

    • Այնուհետև մոդուլի վրա տեղադրեք հետևյալ կոդը՝
    4825

    • Ավելին, մենք ստեղծել ենք գործառույթ, որը կոչվում է ՈՐՈՇՈՒՄ : Այն որոշում է՝ հասցեն էլփոստի հասցե է, թե ոչ: Եկեք կիրառենք ֆունկցիան մեր ունեցած տվյալների հավաքածուի վրա:
    • C5 բջիջի վրա գրեք հետևյալ բանաձևը և այնուհետև ավտոմատ լրացրեք մնացած բջիջները՝ օգտագործելով Լրացնել բռնակը :
    =DECISION(B5)

    • Ինչպես տեսնում ենք, մենք որոշել ենք յուրաքանչյուր հասցե՝ արդյոք դա էլ․ հասցե է։ թե ոչ:

    🎓 Ինչպե՞ս է աշխատում ծածկագիրը:

    • Function DECISION(string1 As String)

    Նախ, սա ստեղծում է ֆունկցիա, որը կոչվում է DECISION string արգումենտ անունով string1 :

    • Dim Position as Integer

    Այն հայտարարում է Position<անունով ամբողջ փոփոխական: 2>.

    • Դիրք = InStr(1, string1, “@”, 0)

    Սա վերագրում է -ի արժեքը Տեղադրեք փոփոխականը որպես InStr ֆունկցիայի արդյունք՝ 1, string1, “@” և 0 արգումենտներով: Կարճ ասած, սա նշանակում է դիրք այն հասցեում, որտեղ կա “@” :

    • Եթե պաշտոն = 0, ապա ՈՐՈՇՈՒՄ = “Ոչ էլփոստով”

    Այն վերագրում է DECISION ֆունկցիայի արդյունքը որպես «Ոչ էլփոստ» , եթե Դիրքը փոփոխականը 0 է, ինչը նշանակում է, որ հասցեում չկա “@” :

    (Հիշեք, եթե տվյալ տողի մեջ որևէ տող չի գտնվել, ապա InStr ֆունկցիան վերադարձնում է 0 ):

    • Else DECISION = “Email”

    Սա վերագրում է DECISION ֆունկցիայի արդյունքը որպես «Email» , եթե հասցեում կա «@» : Այսպիսով, այն հասցեները, որտեղ կա «@» դասակարգվում են որպես Էլ. Նման ընթերցումներ

    • Ինչպես օգտագործել VBA UCASE ֆունկցիան Excel-ում (4 օրինակ)
    • Օգտագործել MsgBox ֆունկցիան Excel VBA-ում (Ամբողջական ուղեցույց)
    • Ինչպես օգտագործել VBA SPLIT ֆունկցիան Excel-ում (5 օրինակ)
    • Օգտագործել LCase ֆունկցիան VBA-ում Excel-ում (With 4 Օրինակ)
    • Ինչպես օգտագործել Fix Function-ը Excel VBA-ում (4 օրինակ)

    2. Օգտագործելով VBA InStr ֆունկցիան Որոշ էլփոստի հասցեների ընդլայնումը հանելու համար

    Այստեղ մենք ունենք որոշ հաճախորդների էլ.փոստի հասցեների ցանկ: Այս անգամ մենք կհանենք էլփոստի հասցեի ընդլայնումը, օրինակ՝ արդյոք նրանք ունեն gmail.com կամ yahoo.com :

    Դա անելու համար հետևեք ստորև նշված քայլերին:

    Քայլեր.

    • Սկզբի համար, ինչպես նախորդ մեթոդը, բացեք նոր VBA մոդուլը և պատուհանում տեղադրեք հետևյալ կոդը:
    5975

    • Բացի այդ, մենք ստեղծել ենք ֆունկցիա, որը կոչվում է. ԸՆԴԼԱՅՆՈՒՄ : Այն արդյունահանում է ցանկացած էլփոստի հասցեի ընդլայնում:
    • Այնուհետև, եկեք կիրառենք այս գործառույթը մեր ունեցած տվյալների հավաքածուի վրա: Սկզբում մուտքագրեք այս բանաձևը C5 բջիջում և այնուհետև կրկնակի սեղմեք Լրացնել բռնակի :
    =EXTENSION(B5)

    • Վերջապես, մենք կարող ենք տեսնել, որ մենք հաջողությամբ հանել ենք բոլոր նամակների ընդլայնումը:

    🎓 Ինչպե՞ս է աշխատում ծածկագիրը:

    • Function EXTENSION (Email As String)

    Սա ստեղծում է նոր ֆունկցիա, որը կոչվում է EXTENSION , Email անունով տողային արգումենտ:

    • Dim Position as Integer

    Այս մասը հայտարարում է Position անունով ամբողջ փոփոխական .

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

    Սա նշանակում է <1-ի արժեքը>Դիրքավորիր փոփոխականը որպես InStr ֆունկցիայի արդյունք՝ 1, Email, “@” և 0 արգումենտներով: Կարճ ասած, սա նշանակում է դիրք Email , որտեղ կա “@” :

    • EXTENSION = Right(Email, (Len (Էլ. փոստ) – Պաշտոն))

    Այս մասը վերագրում է EXTENSION ֆունկցիայի արդյունքը որպես “@” նշանից հետո նիշերի: Սա Email -ի պահանջվող ընդլայնումն է:

    3. Անունից հանելով անունը կամ ազգանունը օգտագործելով VBA InStr ֆունկցիան

    Վերջապես մենք կկատարենք եզակի այլ առաջադրանք: Այս անգամ մենք ունենք մի քանի աշխատակիցների անուններընկերությունը. Եվ մենք կփորձենք ստեղծել մի ֆունկցիա՝ աշխատողների անունը կամ ազգանունը հանելու համար:

    Դա անելու համար հետևեք ստորև նշված քայլերին:

    0> Քայլեր.

    • Նախ, մեթոդ 1 -ի նման, տեղադրեք ստորև նշված կոդը նոր մոդուլում VBA  պատուհանում:
    4491

    • Այստեղ մենք ստեղծել ենք գործառույթ, որը կոչվում է SHORTNAME , որը անունից հանում է կամ անունը, կամ ազգանունը: Եկեք կիրառենք այս բանաձևը մեր տվյալների հավաքածուի վրա:
    • Սկզբում անունը հանելու համար գրեք ստորև բերված բանաձևը C5 բջիջում:
    =SHORTNAME(B5,-1)

    • Վերջապես, ազգանունները հանելու համար D5 -ում գրում ենք հետևյալ բանաձևը.
    =SHORTNAME(B5,1)

    • Այնուհետև, եթե մենք ավտոմատ կերպով լրացնենք մնացած բջիջները Fill Handler<2-ով>, մենք կտեսնենք մեր ցանկալի արդյունքը:

    🎓 Ինչպե՞ս է աշխատում կոդը:

    • SHORTNAME ֆունկցիան (Անունը որպես տող, First_or_Last որպես ամբողջ թիվ)

    Այն ստեղծում է նոր ֆունկցիա, որը կոչվում է SHORTNAME մեկ տողային արգումենտով, որը կոչվում է Անուն և մեկ ամբողջ թիվ` Առաջին_կամ_Վերջին :

    • Մթության ընդմիջում որպես ամբողջ թիվ

    Այս հատվածը հայտարարում է նոր ամբողջ թվային փոփոխական, որը կոչվում է Break :

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

    Այն վերագրում է Break փոփոխականի արժեքը որպես InStr ֆունկցիայի արդյունք՝ արգումենտներով: 1, Անուն, “ ” և 0 : Կարճ ասած, սա նշանակում է Անուն դիրքը, որտեղ կա բացատ (“ ”):

    • Եթե First_or_Last = -1 Ապա SHORTNAME = Ձախ (Անուն, ընդմիջում – 1)

    Այս տողը վերագրում է SHORTNAME ֆունկցիայի արդյունքը որպես բացատ -ից առաջ գտնվող նիշերի, եթե Առաջին_կամ_Վերջին արգումենտը -1 է: Սա առաջին անունն է:

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

    Այս մասը վերագրում է ելքը SHORTNAME -ը գործում է որպես բացատ -ից հետո նիշեր, եթե First_or_Last արգումենտը 1 է: Սա ազգանունն է:

    Եզրակացություն

    Այս կերպ դուք կարող եք գրել VBA կոդեր InStr ֆունկցիայով, որը պարզում է կոնկրետ տողի դիրքը մեկ այլ տրվածի ներսում: string, այնուհետև կարող եք ստեղծել ձեր սեփական գործառույթները տարբեր օգտագործման համար: Ավելին, եթե ունեք հարցեր, ազատ զգալ մեզ հարցրեք:

    Հյու Ուեսթը բարձր փորձառու Excel-ի մարզիչ և վերլուծաբան է, որն ունի ավելի քան 10 տարվա փորձ այս ոլորտում: Նա հաշվապահական հաշվառման և ֆինանսների բակալավրի և բիզնեսի կառավարման մագիստրոսի կոչում է ստացել: Հյուը կիրք ունի դասավանդելու նկատմամբ և մշակել է ուսուցման յուրահատուկ մոտեցում, որը հեշտ է հետևել և հասկանալ: Excel-ի նրա փորձագիտական ​​գիտելիքներն օգնել են հազարավոր ուսանողների և մասնագետների ամբողջ աշխարհում բարելավել իրենց հմտությունները և առաջադիմել իրենց կարիերայում: Իր բլոգի միջոցով Հյուն կիսվում է իր գիտելիքներով աշխարհի հետ՝ առաջարկելով Excel-ի անվճար ձեռնարկներ և առցանց ուսուցում, որոնք կօգնեն անհատներին և ձեռնարկություններին հասնել իրենց ողջ ներուժին: