Չնայած Excel- ն արդեն ունի հարյուրավոր ներկառուցված գործառույթներ, ինչպիսիք են SUM, VLOOKUP, LEFT և այլն, առկա ներկառուցված գործառույթները սովորաբար բավարար չեն բավական բարդ առաջադրանքներ կատարելու համար: Այնուամենայնիվ, մի անհանգստացեք, քանի որ անհրաժեշտ է միայն ինքներդ ստեղծել անհրաժեշտ գործառույթները:
Քայլ
Քայլ 1. Ստեղծեք նոր աշխատանքային գիրք կամ բացեք այն աշխատանքային գիրքը, որը ցանկանում եք մշակել օգտվողի կողմից սահմանված գործառույթների (UDF) միջոցով:
Քայլ 2. Բացեք Visual Basic խմբագրիչը Microsoft Excel- ում Գործիքներ-> Մակրո-> Visual Basic խմբագիր (կամ սեղմեք Alt+F11 դյուրանցումը):
Քայլ 3. Կտտացրեք Մոդուլ կոճակին ՝ ձեր աշխատանքային թերթին նոր մոդուլ ավելացնելու համար:
Դուք կարող եք UDF ստեղծել աշխատանքային գրքում ՝ առանց նոր մոդուլ ավելացնելու, բայց գործառույթը չի աշխատի նույն աշխատանքային գրքույկի այլ աշխատանքային թերթերում:
Քայլ 4. Ստեղծեք ձեր գործառույթի «գլուխը» կամ «նախատիպը»:
Ֆունկցիայի նախատիպը պետք է հետևի հետևյալ կառուցվածքին.
հանրային գործառույթ «Ֆունկցիայի անուն» (պարամետր 1 Որպես տիպ 1, պարամետր 2 Որպես տիպ 2) Որպես Արդյունքի տեսակ:
Նախատիպերը կարող են ունենալ հնարավորինս շատ գործառույթներ, և դրանց տեսակները կարող են լինել տվյալների հիմնական բոլոր տեսակները կամ Excel օբյեկտի տեսակները ՝ Range տեսքով: Կարող եք պարամետրերը դիտել որպես «օպերատորներ» (օպերատորներ), որոնց վրա գործառույթը կգործի: Օրինակ, երբ գրում եք SIN (45) ՝ 45 աստիճանի սինուսը հաշվարկելու համար, 45 թիվը որպես պարամետր կհամարվի: Այնուհետև գործառույթի կոդը կօգտագործի այդ արժեքները `հաշվարկներ կատարելու և արդյունքները ցուցադրելու համար:
Քայլ 5. Ավելացրեք գործառույթի կոդը `ապահովելու համար, որ դուք ՝ 1) օգտագործում եք պարամետրով տրված արժեքը. 2) արդյունքը փոխանցել գործառույթի անվանը. և 3) փակել գործառույթը «վերջնական գործառույթ» նախադասությամբ:. VBA- ում կամ որևէ այլ լեզվով ծրագրեր սովորելը տևում է շատ ժամանակ և մանրամասն ուղղորդում: Բարեբախտաբար, այս գործառույթները սովորաբար ունեն փոքր կոդերի բլոկներ և շատ չեն օգտագործում ծրագրավորման լեզվի հնարավորությունները: Ահա VBA լեզվի որոշ տարրեր, որոնք կարող են օգտագործվել.
- Եթե (եթե) բլոկը, որը թույլ է տալիս կատարել ծածկագրի մի մասը միայն այն դեպքում, եթե պայմանը բավարարված է: Որպես օրինակ.
- . Դուք կարող եք բաց թողնել «Այլ» բառը ՝ ծածկագրի երկրորդ մասի հետ միասին, քանի որ այն պարտադիր չէ:
- Do (անել) բլոկը, որը կատարում է Մինչև կամ Մինչև ծածկագրի մի մասը, երբ կամ մինչև պայմանը կատարվի: Որպես օրինակ.
- . Նշեք նաև երկրորդ տողը, որը «հայտարարում է» փոփոխականը: Դուք կարող եք փոփոխականներ ավելացնել ձեր կոդին ՝ հետագայում օգտագործելու համար: Կոդում փոփոխականները գործում են որպես ժամանակավոր արժեքներ: Ի վերջո, հաշվի առեք գործառույթի հայտարարագիրը որպես BOOLEAN, որը տվյալների տեսակ է, որը թույլ է տալիս միայն TRUE կամ FALSE արժեքներ: Պարզ թվերի որոշման այս մեթոդը հեռու է օպտիմալ լինելուց, բայց ծածկագիրը գրվել է այնպես, որ այն հեշտ ընթերցվի:
- Բլոկի համար (դեպի), որը կատարում է որոշակի քանակությամբ ծածկագիր: Որպես օրինակ.
- Հաստատուն արժեք, որը մուտքագրվում է անմիջապես բջիջի բանաձևի մեջ: Այս դեպքում տեքստը (տողը) պետք է մեջբերվի:
- Բջջային հղումներ, օրինակ B6 կամ նման տեսականի A1: C3 (պարամետրը պետք է լինի տվյալների տեսակը ՝ «Շառավղ»)
-
Մեկ այլ գործառույթ, որը ներառված է ձեր գործառույթում (ձեր գործառույթը կարող է ներառվել նաև մեկ այլ գործառույթում), օրինակ ՝ = Factorial (MAX (D6: D8))
Քայլ 7. Համոզվեք, որ արդյունքները ճիշտ են:
Օգտագործեք այն մի քանի անգամ `համոզվելու համար, որ գործառույթը կարող է ճիշտ կարգավորել տարբեր պարամետրերի արժեքներ.
Խորհուրդներ
- Կառավարման կառույցներում, ինչպիսիք են If, For, Do և այլն, կոդերի բլոկներ գրելիս համոզվեք, որ մուտքագրել եք (մի փոքր ներդիր ձախ գծի սահմանը) կոդի բլոկը ՝ մի քանի անգամ սեղմելով բացատախտակը կամ ներդիրը: Սա ավելի դյուրին կդարձնի ծածկագիրը, իսկ սխալները ՝ շատ ավելի հեշտ: Բացի այդ, ֆունկցիոնալության բարձրացումն ավելի հեշտ է դառնում:
- Եթե չգիտեք, թե ինչպես գրել կոդը գործառույթների համար, կարդացեք հոդվածը Ինչպես գրել պարզ մակրո Microsoft Excel- ում:
- Երբեմն, արդյունքները հաշվարկելու համար գործառույթներին անհրաժեշտ չեն բոլոր պարամետրերը: Այս դեպքում, ֆունկցիայի վերնագրում պարամետրի անունից առաջ կարող եք օգտագործել Ընտրովի հիմնաբառ: Դուք կարող եք օգտագործել IsMissing (պարամետր_անուն) գործառույթը ձեր ծածկագրում `որոշելու համար, թե արդյոք պարամետրին նշանակված է արժեք, թե ոչ:
- Օգտագործեք չօգտագործված անունները որպես գործառույթներ Excel- ում, որպեսզի ոչ մի գործառույթ չվերագրվի և ջնջվի:
- Excel- ն ունի բազմաթիվ ներկառուցված գործառույթներ, և շատ հաշվարկներ կարող են կատարվել ՝ օգտագործելով այս ներկառուցված գործառույթները ՝ առանձին կամ միանգամից: Համոզվեք, որ ծանոթանաք առկա գործառույթների ցանկին ՝ նախքան ինքներդ կոդավորումը սկսելը: Կատարումը կարող է կատարվել ավելի արագ, եթե դուք օգտագործում եք ներկառուցված գործառույթներ:
Գուշացում
- Անվտանգության նկատառումներից ելնելով ՝ շատերն անջատում են մակրոները: Համոզվեք, որ ձեր աշխատանքային գրքույկ ստացողներին տեղեկացնեք, որ ներկայացված աշխատանքային գրքում կան մակրոներ, և որ այդ մակրոները չեն վնասի նրանց համակարգիչներին:
- Այս հոդվածում օգտագործված գործառույթը հարակից խնդիրը լուծելու լավագույն միջոցը չէ: Օրինակն օգտագործվում է լեզուների վերահսկման կառույցների կիրառումը բացատրելու համար:
- VBA- ն, ինչպես և այլ լեզուներ, Do, If և For- ից բացի ունի մի քանի այլ կառավարման կառույցներ: Այստեղ քննարկված կառուցվածքը նկարագրում է միայն այն, ինչ կարելի է անել ֆունկցիայի աղբյուրի կոդի մեջ: Ինտերնետում կան բազմաթիվ ուղեցույցներ, որոնք կարող են օգտագործվել VBA սովորելու համար:
Հանրային գործառույթի դասընթացի արդյունք (որպես ամբողջ թիվ) Ինչպես լարային
Եթե արժեքը> = 5 Հետո
Դասընթացի արդյունքները = "Ընդունված է"
Այլ
Դասընթացի արդյունքները = "Մերժված է"
Վերջ, եթե
Ավարտի գործառույթը
Ուշադրություն դարձրեք If կոդի բլոկի տարրերին.
ԵԹԵ պայման ԱՅՍԵՎ ծածկագիր ԱՅԼ կոդը ՎԵՐ END ԵԹԵ
Հանրային գործառույթը BilPrima (արժեքը որպես ամբողջ թիվ) Որպես բուլյան
Dim i As Integer
i = 2
BilPrima = Trueշմարիտ
Արա
Եթե արժեքը / i = Int (արժեքը / i) Հետո
BilPrima = Սխալ
Վերջ, եթե
i = i + 1
Loop while i <value And NumberPrima = True
Ավարտի գործառույթը
Կրկին նայեք տարրերին.
ԿԱՐOԵՔ LOOP WHILE/Մինչև վիճակը
Հանրային գործառույթի գործակից (արժեքը որպես ամբողջ թիվ) այնքան երկար
Թույլ արդյունքներ այնքան երկար
Dim i As Integer
Եթե արժեքը = 0 Հետո
արդյունք = 1
Եթե արժեք = 1 Հետո
արդյունք = 1
Այլ
արդյունք = 1
Համար i = 1 Գնահատելու համար
արդյունք = արդյունք * i
Հաջորդը
Վերջ, եթե
Factorial = արդյունք
Ավարտի գործառույթը
Կրկին նայեք տարրերին.
Փոփոխականի համար = ստորին սահմանը ԿԱՅԻ ծածկագրի վերին սահմանը
. Նաև նշեք If հայտարարության լրացուցիչ ElseIf տարրը, որը թույլ է տալիս լրացուցիչ ընտրանքներ ավելացնել կատարվող ծածկագրին: Ի վերջո, հաշվի առեք «արդյունք» գործառույթը և փոփոխականը հայտարարված որպես Երկար: Երկար տվյալների տեսակը թույլ է տալիս շատ ավելի մեծ արժեքներ, քան ամբողջ թիվը:
Ստորև ներկայացված է այն գործառույթի կոդը, որը փոքր թվերը վերածում է բառերի:
Քայլ 6. Վերադարձեք աշխատանքային գրքույկ և օգտագործեք գործառույթը ՝ գրելով «հավասար» նշանը (=), որին հաջորդում է բջիջի գործառույթի անունը:
Ֆունկցիայի անունից հետո գրեք բացման փակագծերը («(») ՝ օգտագործելով նշանը կոմա անջատել պարամետրերը և ավարտել փակագծերի փակմամբ («)»): Որպես օրինակ.
= NumberToLetter (A4)
. Կարող եք նաև օգտագործել տնական բանաձևեր ՝ դրանք որոնելով կատեգորիաներում Օգտագործողի կողմից սահմանված Insert Formula տարբերակի ներսում: Դուք պարզապես սեղմեք կոճակը Fx բանաձևի բարից ձախ: Գործառույթներում կան երեք տեսակի պարամետրերի ձևեր.