Բովանդակություն
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 նշանակում է մեծատառերի համեմատություն:
- Վերադարձնում է 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, այնուհետև կարող եք ստեղծել ձեր սեփական գործառույթները տարբեր օգտագործման համար: Ավելին, եթե ունեք հարցեր, ազատ զգալ մեզ հարցրեք: