Programoje "Excel" sukurti pasirinktinės funkcijos

Pastaba: Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Š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. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip patogia nuoroda.

Nors "Excel" yra daugybė įtaisytųjų darbalapio funkcijas, yra tikimybė, kad ji neturi kiekvieno tipo atliekate skaičiavimo funkciją. "Excel" kūrėjų galbūt nepavyko numatyti kiekvieno vartotojo skaičiavimo poreikius. Vietoj to, "Excel" suteikia galimybę kurti pasirinktinių funkcijų, kurias šiame straipsnyje paaiškinta.

Pasirinktinės funkcijos, pvz., makrokomandų, naudokite " Visual Basic for Applications (VBA) " programavimo kalbą. Jie skiriasi nuo makrokomandų reikšminio dviem būdais. Pirmiausia jie naudoja funkciją procedūrų vietoj Sub procedūras. Tai yra nuo pat pradžių funkcija apie vietoj pažymimi Sub ir end su Pabaigos funkcija vietoj End Sub. Antra, jie atlikti skaičiavimus, o ne imtis veiksmų. Tam tikrų rūšių sakinius, pvz., pranešimus, pasirinkite ir suformatuokite diapazonai, yra pašalinama iš pasirinktinės funkcijos. Šiame straipsnyje sužinosite, kaip kurti ir naudoti pasirinktinius funkcijas. Norėdami sukurti funkcijas ir makrokomandas, galite dirbti su Visual Basic Editor (VBE), kuris atidaro naują langą, nesusijusių su "Excel".

Tarkime, kad jūsų įmonė siūlo nuolaidą 10 procentų pardavimo produkto, jeigu tvarka yra daugiau nei 100 vienetų. Tolesnėse dalyse, bus parodytas funkciją norėdami apskaičiuoti Ši nuolaida.

Pateiktame pavyzdyje užsakymo forma, kurioje yra kiekvieno elemento, kiekis, kaina, nuolaida (jei tokių yra), ir gaunama sudėtinė kaina.

Pavyzdys užsakymo forma be pasirinktinės funkcijos

Norėdami sukurti pasirinktinį nuolaida funkcija š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 > modulis. Naujo modulio langas dešinėje pusėje iš "Visual Basic" rengyklę.

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

    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 jūsų kodas lengviau skaityti, galite naudoti klavišą Tab įtraukti linijas. Įtrauką tik savo naudos, ir nebūtinas, kaip kodą veiks su arba be jo. Po to, kai įvedate tekstą, įtrauktą eilutę, "Visual Basic" rengyklę daroma prielaida, kad bus taip pat įtrauktos į kitą eilutę. Perkelti (tai yra į kairę) po vieną tabuliavimo simbolių, paspauskite Shift + Tab.

Dabar esate pasirengę naudoti naują nuolaida funkciją. Uždarykite "Visual Basic" rengyklę ir pažymėkite langelį g 7, įveskite:

=DISCOUNT(D7,E7)

"Excel" skaičiuoja 10 procentų nuolaidą 200 vienetų 47,50 $ už vienetą, ir pateikia $950.00.

Pirmoje eilutėje jūsų VBA kodas, funkcija DISCOUNT(quantity, price), nurodėte, kad nuolaida funkcijai reikia dviejų argumentų, kiekis ir kaina. Kai iškviečiate funkciją darbalapio langelyje, turi būti šių dviejų argumentų. Formulės = DISCOUNT(D7,E7), D7 yra kiekio argumentas, o E7 kaina argumentas. Dabar galite kopijuoti formulę nuolaida G8:G13 pateiktame rezultatams gauti.

Apsvarstykite, kaip "Excel" interpretuojamas šią funkciją. Paspaudus klavišą " Enter", "Excel" atrodo vardo nuolaida šioje darbaknygėje ir nustato, kad ji yra pasirinktinė funkcija VBA modulyje. Argumentų pavadinimus, skliaustuose, kiekis ir kainayra reikšmės, kurią nuolaida skaičiavimus vietos rezervavimo ženklai.

Pavyzdys užsakymo forma su pasirinktinės funkcijos

Jei patvirtinimą tokius kodo blokavimo tiria kiekio argumentas, 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ž arba lygus 100, VBA vykdo šį sakinį, kiekis reikšmė kaina reikšmė dauginama ir padaugins iš 0,1, jei:

Discount = quantity * price * 0.1

Rezultatas yra išsaugotas kaip kintamojo nuolaida. VBA pranešimas, kad reikšmė išsaugoma kaip kintamasis vadinamas sakiniu priskyrimą , nes ji įvertina reiškinį dešinėje pusėje, lygybės ženklas ir priskiria rezultatas kintamojo pavadinimas kairėje. Kadangi nuolaida kintamojo pavadinimas toks pat, kaip funkcijos procedūra, saugomi kintamojo reikšmė grąžinama darbalapio formulė, kuri vadinama funkciją nuolaida.

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

Discount = 0

Be to, šį sakinį suapvalina iki dviejų dešimtainių nuolaida kintamasis priskirtą reikšmę:

Discount = Application.Round(Discount, 2)

VBA turi nėra funkcija ROUND, bet "Excel" nėra. Todėl norint naudoti šį patvirtinimą ROUND, galite nurodyti programai VBA ieškoti Round metodas (funkcija) programos objektą ("Excel"). Tai atlikus įtraukdami žodžio taikomosios programos prieš žodį Round. Jums reikia pasiekti į "Excel" funkcijos VBA modulyje, naudokite šią sintaksę.

Pasirinktinė funkcija turi funkcija apie prasideda ir baigiasi sakiniu pabaigos funkcija. Be funkcijos pavadinimą, funkcija apie paprastai nurodo vienas arba keli argumentai. Tačiau galite sukurti funkcijos nėra argumentų. "Excel" yra keletas įtaisytosios funkcijos – RAND ir dabar, pvz., nenaudokite argumentus.

Po sakinio funkcija funkcijos procedūra apima vieną ar daugiau VBA teiginių, sprendimų ir atlikti skaičiavimus, kurių argumentai funkcijai. Galiausiai, kažkur funkcija procedūrą, turite įtraukti pranešimas, kad priskiria reikšmę tokiu pačiu pavadinimu, kaip funkcija kintamasis. Ši reikšmė grąžinama į formulę, kuri iškviečia funkciją.

VBA raktinius žodžius, galite naudoti pasirinktinį funkcijų skaičius yra mažesnis nei nurodytas skaičius galite naudoti makrokomandų. Pasirinktinės funkcijos neleidžiama daryti nieko, išskyrus pateikiama formulę į darbalapį arba išraiška, naudojama kitame VBA makrokomandos arba funkcijos reikšmę. Pvz., pasirinktinės funkcijos negali langų dydį, redaguojant formulę į langelį arba pakeisti šriftą, spalvą arba teksto langelyje modelio parinktis. Jei norite įtraukti "veiksmas" kodą tokios funkcijos procedūra, funkcija grąžins #VALUE! klaida.

Funkcijos procedūra galite atlikti (išskyrus atliekant skaičiavimus) vieną veiksmą, bus rodomas dialogo langas. Kaip gauti įvesties vykdant funkciją vartotojo, galite naudoti sakiniu InputBox pasirinktinį funkcija. Laukas ataskaitą galite naudoti kaip tiekimo informacijos vartotojui. Taip pat galite naudoti pasirinktinį dialogo languose arba vartotojo formas, bet tai įvedimo ribose temą.

Net paprastas makrokomandas ir pasirinktinės funkcijos gali būti sunku skaityti. Galite juos lengviau suprasti pastabų forma, įvesdami aiškinamasis tekstas. Komentarų pridėjimas prieš aiškinamąjį tekstą, kurio apostrofas. Pavyzdžiui, toliau parodyta funkciją nuolaida su komentarais. Įtraukti šias pastabas, kaip lengviau jums arba kitiems išlaikyti savo VBA kodą laikui bėgant. Jei jums reikia pakeisti kodo ateityje, turėsite lengviau suprasti, ką padarė iš pradžių laiko.

VBA funkcijos su komentarais pavyzdys

Apostrofas nurodanti "Excel" nepaisyti visko į dešinę toje pačioje eilutėje, kad galėtumėte kurti arba eilučių patys arba dešinėje pusėje linijų, kuriame yra VBA kodas. Gali pradėti palyginti ilgą bloko kodas komentarą, paaiškinantį bendrą paskirtį ir tada naudoti įdėtųjų komentarų į dokumentą atskirus sakinius.

Kitas būdas į dokumentą jūsų makrokomandos ir pasirinktinės funkcijos yra suteikti jiems aprašomuosius pavadinimus. Pvz., o ne etikečiųmakrokomandos pavadinimą, galima pavadinti jį MonthLabels apibūdinti tiksliau paskirtį makrokomandos yra naudojamas. Aprašomasis makrokomandas ir pasirinktinės funkcijos pavadinimų yra ypač naudingas sukūrę daug procedūrų, ypač, jei kuriate procedūras, kurios yra panašios, bet ne tokie patys tikslais.

Kaip dokumento jūsų makrokomandos ir pasirinktinės funkcijos yra asmens pirmumo. Svarbu kai metodą dokumentų priimti, ir nuosekliai naudoti.

Naudoti pasirinktinį funkcija, reikia atidaryti darbaknygę, kurioje yra modulis, kuris buvo sukurtas funkciją. Jei tą darbaknygę nėra atidarytas, jums #NAME? klaidos pranešimą, kai bandote naudoti funkciją. Jei nurodote funkciją į kitą darbaknygę, turi prieš funkcijos pavadinimą darbaknygę, kurioje yra funkcija pavadinimu. Pavyzdžiui, jei kuriate funkcija vadinama nuolaida vadinamas Personal.xlsb darbaknygėje ir skambinti, kad funkcija iš kitos darbaknygės, turite įvesti =personal.xlsb!discount(), o ne tiesiog =discount().

Galite sutaupyti keli klaviatūros (ir galimas spausdinimo klaidas) pasirinkdami savo pasirinktinės funkcijos dialogo lango Įterpti funkciją. Vartotojo apibrėžtos kategorijos rodomas jūsų pasirinktinės funkcijos:

insert function dialog box

Paprastesnis būdas, kad jūsų pasirinktinės funkcijos pasiekiamos ne visada yra juos išsaugoti kitoje darbaknygėje ir įrašykite tą darbaknygę kaip priedą. Tada galite įtraukti į galimų kiekvieną kartą, kai paleidžiate "Excel". Štai kaip tai padaryti:

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

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

  2. Dialogo lange Įrašyti kaip Atidarykite sąrašą Įrašomo failo tipas išplečiamajame sąraše, ir pasirinkite "Excel" papildinį. Įrašyti darbaknygę atpažįstama pavadinimu, pvz., MyFunctions, priedų aplanke. Dialogo lango Įrašyti kaip pasiūlys aplanke, todėl jums tereikia priimti į numatytąją vietą.

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

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

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

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

  6. Dialogo lange Papildiniai pažymėkite žymės langelį šalia pavadinimą, kurį norite įrašyti savo darbaknygę, kaip parodyta toliau.

    add-ins dialog box

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

  2. Dialogo lange Įrašyti kaip Atidarykite sąrašą Įrašomo failo tipas išplečiamajame sąraše, ir pasirinkite "Excel" papildinį. Įrašykite darbaknygę atpažįstama pavadinimu, pvz., MyFunctions.

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

  4. Dialogo lange Priedai pasirinkite mygtuką Naršyti, Norėdami rasti savo papildinį, spustelėkite atidaryti, tada pažymėkite žymės langelį šalia savo papildinio lauke esantys Priedai .

Atlikus šiuos veiksmus, jūsų pasirinktinės funkcijos bus pasiekiamos kiekvieną kartą paleidus "Excel". Jei norite įtraukti į biblioteką funkcija, grįžkite į "Visual Basic" rengyklę. Jei pažvelgti į Visual Basic Editor Project Explorer projektas VBAProject antraštė, pamatysite modulio pavadintas įtraukimas į failą. Jūsų papildinys bus plėtinys .xlam.

named module in vbe

Du kartus spustelėjus modulio Project Explorer sukelia Visual Basic Editor Rodyti funkcijos kodą. Norėdami įtraukti naują funkciją, padėkite savo įterpimo po sakinio pabaigos funkcija, kad nutraukia funkciją kodas lange ir pradėkite įvesti tekstą. Galite sukurti tiek daug funkcijų, kaip jums reikia tokiu būdu, visada bus galima dialogo lango Įterpti funkciją kategorijoje vartotojo apibrėžta.

Šį turinį iš pradžių buvo įgalintas ženklo Dodge ir Craigas Stinsonas kaip dalį savo Microsoft Office Excel 2007 išoręknygoje. Nes jis į naujesnį "Excel" versijose taip pat taikymas.

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.

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ų.

×