Բովանդակություն
VBA -ի ներդրումն ամենաարդյունավետ, ամենաարագ և անվտանգ մեթոդն է Excel-ում ցանկացած գործողություն իրականացնելու համար: Այս հոդվածում մենք ձեզ ցույց կտանք, թե ինչպես գտնել որոշակի տողեր մեկ այլ տողում՝ օգտագործելով VBA Excel-ում:
Ներբեռնեք պրակտիկայի ձևանմուշը
Դուք կարող եք ներբեռնել Excel-ի անվճար պրակտիկայի ձևանմուշն այստեղից:
VBA՝ String.xlsm-ում գտնելու համար
InStr ֆունկցիան
Microsoft Excel-ն ունի ներկառուցված ֆունկցիա, որը կոչվում է InStr ֆունկցիա ` տվյալ տողում որոշակի տողերի դիրքը գտնելու համար:
Ընդհանուր շարահյուսություն.
InStr([start], string1, string2, [compare])
Այստեղ,
Փաստարկներ | Պահանջվում է/ կամընտիր | Սահմանում |
---|---|---|
սկիզբ | Ընտրովի | Որոնման մեկնարկային դիրքը:
|
string1 | Պահանջվում է | Տողը որոնելու համար, Առաջնային տող: |
string2 | Պահանջվում է | Տողը որոնելու համար առաջնային տողում . |
համեմատել | Ընտրովի | InStr ֆունկցիան լռելյայնորեն զգայուն է մեծատառերի նկատմամբ: Բայց եթե ցանկանում եք գործարկել մեծատառերի անզգայուն InStr , ապա կարող եք փաստարկը փոխանցել այստեղ՝ որոշակի համեմատություն կատարելու համար: Այս փաստարկը կարող է լինել հետևյալըարժեքներ,
Լռելյայնորեն, InStr -ն ընդունում է vbBinaryCompare որպես համեմատության արգումենտ: |
8 Հեշտ օրինակ՝ VBA-ի միջոցով տրված տողում կոնկրետ լարային դիրք գտնելու համար
Տեսնենք մի քանի պարզ օրինակներ՝ տվյալ տողի մեջ որոշակի տողերի դիրքերը ստանալու համար՝ օգտագործելով VBA .
1. VBA՝ տողի մեջ տեքստի դիրքը գտնելու համար
Ստորև բերված է InStr -ի օրինակ՝ գտնելու համար տեքստի դիրքը տողի մեջ:
- Ստեղնաշարի վրա սեղմեք Alt + F11 կամ գնացեք ներդիր Մշակավոր -> Visual Basic բացելու համար Visual Basic Editor :
- Բացվող կոդի պատուհանում՝ ընտրացանկի տողից , սեղմեք Տեղադրել -> Մոդուլ .
- Այժմ կոդի պատուհանում գրեք պարզ InStr ծրագիր VBA Sub-ի ներսում: Ընթացակարգ (տես ստորև):
9928
Ձեր կոդը այժմ պատրաստ է գործարկման:
- Սեղմեք F5 ձեր ստեղնաշարի վրա կամ ընտրացանկից ընտրեք Գործարկել -> Գործարկեք Sub/UserForm : Կարող եք նաև պարզապես սեղմել փոքր Play պատկերակը ենթամենյուի տողում՝ մակրո գործարկելու համար:
Դուք կտեսնեք, որ թռուցիկ հաղորդագրության տուփը ձեզ կտա համարհայտարարելով տեքստի դիրքը , որը ցանկանում էիք ստուգել:
Բացատրություն.
Մեր հիմնական տողը, « Երջանկություն ընտրություն է »-ը 21 տառանոց նախադասություն է (բացատներով) և մենք ուզում էինք գտնել « ընտրություն » տեքստի դիրքը այդ տողի մեջ: « ընտրություն » տեքստը սկսվում էր առաջնային տողի 16-րդ դիրքից, հետևաբար հաղորդագրության վանդակում ստացանք 16 թիվը:
2. VBA տեքստը կոնկրետ դիրքից String-ում գտնելու համար
Այժմ եկեք պարզենք, թե ինչ կլիներ, եթե մենք ցանկանայինք դիրքը ստանալ որոշակի թվից:
- Նույն կերպ, ինչպես մինչ այդ բացեք Visual Basic Editor Developer ներդիրից և Տեղադրեք a Module կոդի պատուհանում:
- In կոդի պատուհանը, գրեք վերևում ցուցադրված պարզ InStr ծրագիր և փոխանցեք արժեքը սկզբնական արգումենտում` ըստ այն դիրքի, որտեղից ցանկանում եք հաշվել ձեր տեքստը:
5850
- Հաջորդում Գործարկեք կոդը:
Դուք կտեսնեք, որ թռուցիկ հաղորդագրության վանդակը կ տալ ձեզ թիվ, որը հայտարարում է տեքստի դիրքը սկսած որոշակի դիրքից , որը ցանկանում էիք ստուգել:
Բացատրություն.
Ինչպես մենք արդեն գիտեինք (1-ին փուլի քննարկումից), որ « ընտրություն » տեքստը սկսվում էր 16 դիրքից, այնպես որ մենք տեղադրեցինք երկու « choice " հիմնական տողում և սահմանել 17 որպես մեր1-ին պարամետր՝ առաջին « ընտրությունը » բաց թողնելու համար: Այսպիսով, մենք գործարկեցինք վերը նշված մակրոն և այն ցույց տվեց մեզ դիրքի համարը 27 , որը հենց երկրորդ « ընտրություն » դիրքի համարն է: տրված տողում։
3. VBA տառերում մեծատառերի անզգայուն InStr ֆունկցիայով տեքստ գտնելու համար
InStr ֆունկցիայի ներդրումից դուք արդեն գիտեք, որ լռելյայնորեն, InStr ֆունկցիան մեծատառերի զգայուն է: Եկեք դա պարզենք օրինակով:
Տե՛ս հետևյալ VBA կոդը, որտեղ մենք ուզում էինք գտնել « Ընտրություն » բառի դիրքը. « մեծատառով «C» « Երջանկությունը ընտրություն է » տողում, որտեղ ընտրությունը գրված է փոքր «գ» տառով .
- Գործարկեք կոդը և գտնեք 0 որպես մեր արդյունք:
Դա այն պատճառով է, որ InStr ֆունկցիան տարբեր կերպ է վերաբերվում մեծ «C» և փոքր «c»-ին : Այսպիսով, այն որոնեց « Ընտրություն » բառը տողի մեջ և չստացվեց, ուստի վերադարձրեց 0 :
- InStr ֆունկցիան տառերի նկատմամբ զգայուն դարձնելու համար, համեմատել արգումենտը սահմանեք vbTextCompare (տես ստորև):
3860
- Գործարկեք կոդը:
Դուք կստանաք տեքստի դիրքը տողից, անկախ նրանից՝ տեքստը գրված է մեծատառով, թե փոքր տառերով ։
4. VBA՝ տողի աջից տեքստ գտնելու համար։
Մինչ այժմ InStr ֆունկցիան մեզ տալիս էր միայն լարայինի ձախ կողմից դիրքը: Բայց ինչ անել, եթե ցանկանում եք գտնել տեքստի դիրքը տողի աջ կողմից:
InStrRev ֆունկցիան որոնում է աջից: InStrRev ֆունկցիան աշխատում է շատ նման InStr ֆունկցիային, և այն ձեզ կգտնի տեքստի դիրքը տողի աջ կողմից :
Տե՛ս հետևյալ օրինակները՝ տարբերությունը հասկանալու համար:
- Եթե գործարկենք հետևյալ կոդը InStr ֆունկցիայով, ապա
այն մեզ տալիս է « ընտրություն » առաջին տեքստի դիրքը ( 16 ):
- Բայց եթե մենք գործարկենք նույն կոդը InStrRev ֆունկցիայի հետ, ապա
այն մեզ տալիս է դիրքը ( 27 ) վերջին տեքստի « ընտրություն »:
Նման ընթերցումներ.
- FindNext օգտագործելով VBA Excel-ում (2 օրինակ)
- Ինչպես գտնել և փոխարինել VBA-ի միջոցով (11 եղանակ)
- Գտեք ճշգրիտ համընկնումը Excel-ում VBA-ի միջոցով (5 եղանակ)
5. VBA տողում նիշի դիրքը գտնելու համար
Դուք կարող եք նաև գտնել որոշակի նիշի դիրքը տողի մեջ այնպես, ինչպես գտել եք տեքստը:
- Պատճենել Հետևեք կոդը ձեր VBA կոդի պատուհանում
2721
- Եվ Գործարկեք մակրոն:
Առաջին « e »-ը մեր տրված տողում է.թիվը 7 դիրքը։
6. VBA-ն տողում ենթատող գտնելու համար
Այստեղ մենք կսովորենք, թե ինչպես պարզել, արդյոք տողը պարունակում է ենթատող , թե ոչ:
Դա ստանալու համար մենք ունենք մեր կոդի մեջ IF հայտարարություն գործարկելու համար:
- Նույն ձևով, ինչպես նախկինում, բացեք Visual Basic Editor Developer ներդիրից և Տեղադրեք Մոդուլ կոդի պատուհանում:
- Կոդի պատուհանում պատճենեք հետևյալ կոդը և տեղադրեք այն:
5487
Ձեր կոդը այժմ պատրաստ է գործարկման:
- Գործարկել մակրոն:
Եթե ձեր տողը պարունակում է ենթատող , ապա դուք կստանաք գտնված համընկնում , հակառակ դեպքում այն կվերադարձնի ոչ մի համընկնում: Մեր օրինակում մենք ցանկանում էինք պարզել, թե արդյոք մեր հիմնական տողը « Երջանկությունը ընտրություն է » պարունակում է « ընտրություն » բառը, թե՞ ոչ: Ինչպես և այդպես է, մենք ստանում ենք Գտնված համընկնումը արդյունք:
7. VBA՝ բջիջների տիրույթում տող գտնելու համար
Դուք կարող եք որոնել որոշակի տեքստ տողի բջիջների տիրույթում և վերադարձնել որոշակի տող:
Նայեք հետևյալ օրինակին, որտեղ մենք գտնել « Բժիշկ », և երբ համընկնում է, այն կվերադարձնի « Բժիշկ »:
- Ստորև բերված է վերը քննարկված արդյունքը ստանալու կոդը,
2523
- Գործարկել կոդը և արդյունքը ցույց է տրված ստորև
- Դուք կարող եք փոփոխել մակրոն ըստ ձեր կարիքի: Օրինակ, եթե ցանկանում եքգտնել « Պրոֆ. » տողի ցանկացած բջիջում և ստանալ « Պրոֆեսոր »-ը որպես վերադարձ, ապա պարզապես փոխանցել «<1»> Պրոֆ. » որպես արժեք « Dr »-ի փոխարեն: մակրոյի 4-րդ տողում և մակրոյի 5-րդ տողում « Պրոֆեսոր »-ի փոխարեն՝ « Դոկտոր » և սահմանել համապատասխանաբար բջիջների տիրույթի համարը:
8. VBA՝ բջիջում տող գտնելու համար
Դուք կարող եք նաև որոնել որոշակի տեքստ տողի մեկ բջիջում և վերադարձնել որոշակի տող:
- Պատճենեք հետևյալ կոդը և տեղադրեք կոդի պատուհանում:
5154
Այն կփնտրի « Dr. » B5 բջիջում և եթե գտնում է համապատասխանությունը, ապա վերադարձնում է « Բժիշկ » C5 բջիջում :
- Դուք կարող եք փոփոխել մակրոն ըստ ձեր կարիքի: Օրինակ, եթե ցանկանում եք գտնել « Պրոֆ. » տողի ցանկացած բջիջում և ստանալ « Պրոֆեսոր », որպես վերադարձ, այնուհետև պարզապես փոխանցեք « Prof. » որպես արժեք « Dr »-ի փոխարեն: մակրոյի 2-րդ տողում և մակրոյի 3-րդ տողում՝ « Պրոֆեսոր »-ի փոխարեն՝ « Դոկտոր » և սահմանեք համապատասխանաբար բջջի հղման համարը:
Եզրակացություն
Այս հոդվածը ցույց տվեց ձեզ, թե ինչպես գտնել որոշակի տեքստեր տողերում Excel-ում՝ օգտագործելով VBA մակրո: Հուսով եմ, որ այս հոդվածը շատ օգտակար է եղել ձեզ համար: Ազատորեն տվեք ցանկացած հարցի վերաբերյալթեման։