Kurti tinkintas funkcijas programoje "Excel"

Nors programoje "Excel" yra daug įtaisytųjų darbalapio funkcijų, yra tikimybė, kad ji neturi funkcijos, skirtos kiekvienam jūsų atliekamo skaičiavimo tipui. "Excel" dizaineriai negalėjo numatyti kiekvieno vartotojo skaičiavimo poreikių. Vietoj to, programa "Excel" suteikia galimybę kurti nestandartines funkcijas, kurios paaiškintos šiame straipsnyje.

Ieškote informacijos, kaip sukurti "JavaScript" pasirinktinę funkciją, kurią galite naudoti "Excel", skirta "Windows", "Excel", skirta "Mac" arba Excel Online ? Jei esate, peržiūrėkite straipsnį "Excel" tinkintos funkcijų apžvalga.

Tinkintos funkcijos, pvz., makrokomandos, naudoja " Visual Basic for Applications" (VBA) programavimo kalbą. Jos skiriasi nuo makrokomandų dviem reikšmingais būdais. Pirma, jie naudoja funkcijų procedūras vietoj sub procedūrų. Tai yra, jie pradeda su funkcijos teiginiu vietoj antrinio sakinio ir baigiasi pabaigos funkcija , o ne End Sub. Antra, jie atlieka skaičiavimus, o ne imtis veiksmų. Tam tikrų tipų teiginiai, pvz., teiginiai, kurie pasirenka ir formatuoja diapazonus, neįtraukiami į tinkintas funkcijas. Šiame straipsnyje sužinosite, kaip kurti ir naudoti tinkintas funkcijas. Norėdami kurti funkcijas ir makrokomandas, dirbate su " Visual Basic" rengykle (VBE), kuri atidaroma naujame lange, atskirtame nuo "Excel".

Tarkime, kad jūsų įmonė siūlo 10 procentų nuolaidą produkto pardavimui, jei užsakymui taikoma daugiau nei 100 vienetų. Tolesnėse pastraipose parodysime funkciją, skirtą šiai nuolaidai apskaičiuoti.

Toliau pateiktame pavyzdyje pateikiama užsakymo forma, kurioje išvardijami visi elementai, kiekis, kaina, nuolaida (jei yra) ir gaunama Išplėstinė kaina.

Pavyzdinės formos pavyzdys naudojant pasirinktinę funkciją

Norėdami sukurti pasirinktinę NUOLAIDĄ šioje darbaknygėje, atlikite šiuos veiksmus:

  1. Paspauskite Alt + F11 , kad atidarytumėte "Visual Basic" rengyklę ("Mac", paspauskite FN + Alt + F11), tada spustelėkite Įterpti > modulį. "Visual Basic" rengyklės dešiniojoje pusėje rodomas naujas modulio langas.

  2. Nukopijuokite ir įklijuokite šį kodą į naują modulį.

    Function DISCOUNT(quantity, price)
       If quantity >=100 Then
         DISCOUNT = quantity * price * 0.1
       Else
         DISCOUNT = 0
       End If
     
     DISCOUNT = Application.Round(Discount, 2)
    End Function
    

Pastaba: Norėdami, kad kodas būtų suprantamesnis, galite naudoti klavišą TAB , kad įtrauktumėte eilutes. Įtrauka skirta tik jūsų naudai ir yra pasirinktinė, nes kodas bus vykdomas su arba be jo. Įvedus įtrauktą eilutę, "Visual Basic" rengyklė perims paskesnę eilutę. Norėdami perkelti (tai yra kairėje) vienu tabuliacijos simboliu, paspauskite SHIFT + TAB.

Dabar esate pasirengę naudoti funkciją nauja nuolaida. Uždarykite "Visual Basic" rengyklę, pasirinkite langelį G7 ir įveskite šiuos duomenis:

= DISCOUNT (D7, E7)

"Excel" apskaičiuoja 10 procentų nuolaidą 200 vienetams "$47,50" vienam vienetui ir grąžina $950,00.

Pirmojoje VBA kodo eilutėje, funkcijos DISCOUNT (kiekis, kaina), nurodėte, kad nuolaidos funkcijai reikia dviejų argumentų, kiekio ir kainos. Kai iškviesite funkciją darbalapio langelyje, turite įtraukti šiuos du argumentus. Formulėje = DISCOUNT (D7, e7), tai yra kiekis argumentas, o E7 yra kainos argumentas. Dabar galite nukopijuoti nuolaidų formulę į G8: G13, kad gautumėte toliau rodomus rezultatus.

Apsvarstykite, kaip "Excel" interpretuos šią funkcijos procedūrą. Paspaudus "Office", "Excel" ieško pavadinimo nuolaidos dabartinėje darbaknygėje ir randa pasirinktinę funkciją VBA modulyje. Argumento pavadinimai skliaustuose, kiekis ir kainayra vietos rezervavimo ženklai, kuriuose skaičiuojama nuolaida.

Pavyzdinės formos pavyzdys pagal pasirinktinę funkciją

Šiame kodo bloke if sakinys nagrinėja argumentą kiekis ir nustato, ar parduotų elementų skaičius yra didesnis už arba lygus 100:

If quantity >= 100 Then
 DISCOUNT = quantity * price * 0.1
Else
 DISCOUNT = 0
End If

Jei parduotų elementų skaičius yra didesnis už 100 arba lygu, VBA vykdo šį sakinį, kuris padaugina kiekio reikšmę iš kainos reikšmės, tada padaugina rezultatą iš "0,1":

Discount = quantity * price * 0.1

Rezultatas saugomas kaip kintamo dydžio nuolaida. VBA sakinys, kuriame saugoma kintamojo reikšmė, vadinamas priskyrimo teiginiu, nes jis įvertina reiškinį lygybės ženklo dešinėje pusėje ir priskiria rezultatą kintamajam pavadinimo kairėje. Kadangi kintamojo nuolaida turi tokį pat pavadinimą kaip ir funkcijos procedūra, kintamojo reikšmė grąžinama į darbalapio formulę, vadinamą funkcija Discount.

Jei kiekis mažesnis už 100, VBA vykdo šį sakinį:

Discount = 0

Galiausiai šiame sakinyje suapvalinama reikšmė, priskirta nuolaidos kintamajam iki dviejų skaitmenų po kablelio:

Discount = Application.Round(Discount, 2)

VBA neturi APVALIOS funkcijos, bet "Excel" veikia. Todėl Norėdami naudoti APVALIŲ šį sakinį, galite nurodyti VBA ieškoti apvalaus metodo (funkcija) programos objekte ("Excel"). Tai padarysite įtraukdami "Word" taikomąją programą prieš žodį raunde. Naudokite šią sintaksę, kai reikia pasiekti "Excel" funkciją iš VBA modulio.

Funkcija pasirinktinai turi prasidėti funkcijos patvirtinimu ir baigti su funkcijos end patvirtinimu. Be funkcijos pavadinimo, funkcijos sakinys paprastai nurodo vieną ar daugiau argumentų. Tačiau galite sukurti funkciją be argumentų. "Excel" yra kelios įtaisytosios funkcijos (RAND) ir dabar, pvz., kurios nenaudo argumentų.

Atlikus funkcijos teiginį, funkcijos procedūra aprėpia vieną ar daugiau VBA teiginių, kurie priima sprendimus ir atlieka skaičiavimus, naudodami funkcijai priimtus argumentus. Galiausiai, kur nors funkcijoje, privalote įtraukti sakinį, priskiriantį reikšmę kintamajam su tuo pačiu pavadinimu kaip funkcija. Ši reikšmė grąžinama į formulę, kuri iškviečia funkciją.

VBA raktažodžių, kuriuos galite naudoti savo funkcijose, skaičius yra mažesnis nei skaičius, kurį galite naudoti makrokomandose. Pasirinktinio funkcijų neleidžiama atlikti kitų funkcijų, o ne grąžinti reikšmę į darbalapio formulę arba išraišką, naudojamą kitoje VBA makrokomandoje arba funkcijoje. Pvz., pasirinktoms funkcijoms negalima pakeisti "Windows", redaguoti formulę langelyje arba pakeisti langelio teksto šriftą, spalvą arba trafareto parinktis. Jei į funkcijos procedūrą įtraukiate "veiksmo" kodą, funkcija pateikia #VALUE! Klaida.

Veiksmą galima atlikti atliekant vieną veiksmą (išskyrus atliekant skaičiavimus) rodomas dialogo langas. Galite naudoti " InputBox " sakinį pasirinktiniame funkcijoje kaip įvesties iš vartotojo, vykdančiu funkciją, būdas. Galite naudoti MsgBox sakinį kaip informacijos perdavimo vartotojui būdą. Taip pat galite naudoti pasirinktinio dialogo langus arba UserForms, bet tai tema, kuri nepatenka į šio įvado aprėptį.

Gali būti sunku skaityti net paprastas makrokomandas ir tinkintas funkcijas. Galite juos lengviau suprasti įvesdami paaiškinamąjį tekstą į komentarų formą. Galite įtraukti komentarų prieš paaiškinantį tekstą su apostrofas. Pavyzdžiui, toliau pateiktame pavyzdyje rodoma funkcija DISCOUNT su komentarais. Įtraukus tokius komentarus, jums ar kitiems būtų lengviau išlaikyti jūsų VBA kodą kaip laiką. Jei norite pakeisti kodą ateityje, turite lengviau suprasti, ką iš pradžių padarėte.

VBA funkcijos su komentarais pavyzdys

Apostrofas nurodo, kad "Excel" gali nepaisyti visko, kas yra toje pačioje eilutėje, kad galėtumėte kurti komentarus arba eilutėse, arba dešinėje pusėje, kurioje yra VBA kodas. Galite pradėti gana ilgą kodo bloką su komentaru, kuris paaiškina jo bendrąjį tikslą, o tada naudoti įdėtuosius komentarus atskiroms ataskaitoms dokumentuoti.

Kitas būdas, kaip dokumentuoti savo makrokomandas ir nestandartines funkcijas, yra pateikti jiems aprašomuosius pavadinimus. Pvz., užuot pavadinę makrokomandų etiketes, galite pavadinti ją monthlabels , kad tiksliau apibūdintumėte paskirtį makrokomandos tarnauja. Naudojant aprašomuosius makrokomandų ir funkcijų funkcijose esančius pavadinimus, ypač naudinga, kai sukūrėte daug procedūrų, ypač jei kuriate panašias, bet ne identiškas paskirties procedūras.

Kaip dokumentuoti savo makrokomandas ir tinkintas funkcijas, yra asmeninio pasirinkimo reikalas. Svarbu, kad būtų priimtas kai kurie dokumentacijos metodai ir nuosekliai naudojamas.

Jei norite naudoti pasirinktinę funkciją, darbaknygė, kurioje yra modulis, kuriame sukūrėte funkciją, turi būti atidaryti. Jei darbaknygė neatidaroma, galite gauti #NAME? klaida bandant naudoti funkciją. Jei nurodėte funkciją kitoje darbaknygėje, prieš funkcijos pavadinimą turite naudoti darbaknygės, kurioje yra funkcija, pavadinimą. Pavyzdžiui, jei sukuriate funkciją, vadinamą nuolaida darbaknygėje, vadinamoje Personal. xlsb, ir jūs skambinate šia funkcija iš kitos darbaknygės, turite įvesti = Personal. xlsb! Discount (), o ne tiesiog = Discount ().

Galite įrašyti patys kai kuriuos klavišų paspaudimus (ir galimas spausdinimo klaidas), pasirinkę savo pritaikytas funkcijas iš dialogo lango Įterpti funkciją. Jūsų tinkintos funkcijos pateikiamos vartotojo apibrėžtoje kategorijoje:

insert function dialog box

Paprasčiausias būdas atlikti savo pritaikytas funkcijas visada yra saugoti jas atskiroje darbaknygėje ir įrašyti darbaknygę kaip papildinį. Tada galite naudoti papildinį, kai paleisite programą "Excel". Štai kaip tai padaryti:

  1. Sukūrę reikalingas funkcijas, spustelėkite failas > Įrašyti kaip.

    Programoje Excel 2007 spustelėkite "Microsoft Office" mygtuką, tada spustelėkite Įrašyti kaip

  2. Dialogo lange Įrašyti kaip atidarykite išplečiamąjį sąrašą Įrašomo kaip tipas ir pasirinkite "Excel" papildinys. Įrašykite darbaknygę pagal atpažįstamą pavadinimą, pvz., Myfunctions, aplanke priedai . Dialogo langas Įrašyti kaip pasiūlys šį aplanką, kad viskas, ką turite padaryti, būtų priimti numatytąją vietą.

  3. Įrašę darbaknygę spustelėkite failas > "Excel" parinktys.

    Programoje Excel 2007 spustelėkite "Microsoft Office" mygtuką, tada spustelėkite "Excel" parinktys.

  4. Dialogo lange "Excel" parinktys spustelėkite kategoriją papildiniai .

  5. Išplečiamajame sąraše tvarkyti pasirinkite "Excel" papildiniai. Tada spustelėkite mygtuką eiti .

  6. Dialogo lange papildiniai pažymėkite žymės langelį šalia vardo, kurį naudojote įrašydami darbaknygę, kaip parodyta toliau.

    add-ins dialog box

  1. Sukūrę reikalingas funkcijas, spustelėkite failas > Įrašyti kaip.

  2. Dialogo lange Įrašyti kaip atidarykite išplečiamąjį sąrašą Įrašomo kaip tipas ir pasirinkite "Excel" papildinys. Įrašykite darbaknygę atpažįstamu pavadinimu, pvz., Myfunctions.

  3. Įrašę darbaknygę, spustelėkite įrankiai > "Excel" papildiniai.

  4. Dialogo lange papildiniai pasirinkite mygtuką Naršyti, kad rastumėte savo papildinį, spustelėkite atidaryti, tada pažymėkite žymės langelį šalia papildinio lauke Galimi papildiniai .

Kai atliksite šiuos veiksmus, Jūsų tinkintos funkcijos bus pasiekiamos kiekvieną kartą paleidus "Excel". Jei norite įtraukti į savo funkcijų biblioteką, grįžkite į "Visual Basic" rengyklę. Jei peržiūrite "Visual Basic" rengyklės projekto naršyklę dalyje VBAProject, matysite modulį, pavadintą jūsų papildinio faile. Jūsų papildinys turės plėtinį. xlam.

named module in vbe

Dukart spustelėjus tą modulį "Project Explorer", "Visual Basic" rengyklė, kad būtų rodomas jūsų funkcijos kodas. Norėdami įtraukti naują funkciją, nustatykite įterpimo vietą po pabaigos funkcijos pareiškimu, kuris nutraukia paskutinę funkciją kodo lange ir pradėkite įvesti tekstą. Tokiu būdu galite sukurti tiek funkcijų, kiek reikia, ir jos visada bus pasiekiamos dialogo lange Įterpti funkciją vartotojo apibrėžtoje kategorijoje.

Šis turinys iš pradžių buvo autorius pažymėti Dodge ir Craig Stinson kaip dalį savo knygos "Microsoft Office Excel" 2007 viduje. Nuo šiol atnaujinta, kad ji būtų taikoma ir naujesnėms "Excel" versijoms.

Reikia daugiau pagalbos?

Visada galite paprašyti specialisto iš „Excel“ technologijų bendruomenės, gauti pagalbos iš Atsakymų bendruomenės arba siūlyti naują funkciją ar patobulinimą „Excel“ vartotojo balse.

Pastaba:  Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Prašome mus informuoti, ar radote reikiamos informacijos. Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip nuoroda.

Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×