Šioje pamokoje bus paaiškinta, kaip sukurti vartotojo apibrėžtas funkcijas VBA.
VBA susideda iš antrinių procedūrų ir funkcijų procedūrų. Funkcijų procedūros grąžina vertę ir gali būti iškviestos pagal antrines procedūras arba gali būti naudojamos „Excel“ lape, kur funkcijos sukurta vertė grąžinama į „Excel“ lapą. Žinoma, „Excel“ turi daugybę integruotų funkcijų, tokių kaip „Sum Function“ arba „If Function“. Funkcijų procedūros, kurias rašote VBA, yra naudojamos panašiai kaip ir įmontuotos funkcijos ir yra žinomos kaip vartotojo apibrėžtos funkcijos (UDF).
Kodėl verta sukurti UDF?
Trūksta būtinos funkcijos
Viena iš pagrindinių priežasčių, kodėl norite sukurti UDF „Excel“, yra ta, kad nėra esamos integruotos funkcijos, kuri atliktų šią užduotį už jus. Savo funkcijos rašymas VBA paprastai yra efektyviausias būdas išspręsti problemą. Žemiau pateikta funkcija konvertuos vertę iš kilogramų į svarus, kai kintamasis parametras (dblKilo) naudojamas kilogramų vertei gauti, kad būtų galima atlikti skaičiavimus.
Pakeiskite paprogramę (makro)
Galite parašyti papildomą procedūrą (makro), kad išspręstumėte užduotį už jus, tačiau antrinės procedūros negrąžina vertės ir jos nėra dinamiškos, kitaip tariant, jei jūsų darbalapio vertės pasikeičia, turėsite iš naujo paleisti makrokomandą, kad makrokomandos skaičiavimai atnaujintų jūsų duomenis. Toliau pateikta papildoma procedūra taip pat konvertuotų mūsų kilogramus į svarus, tačiau kiekvieną kartą, kai duomenys pasikeitė A1, jums reikės iš naujo paleisti makrokomandą, kad būtų atnaujintas rezultatas.
Pakeiskite formulę
Galite turėti tikrai sudėtingą „Excel“ formulę, kurią turite naudoti pakartotinai - įdėjus formulę į VBA kodą, ją lengviau skaityti ir suprasti - taip pat galbūt pašalinama vieta vartotojo klaidoms rašant formulę.
UDF kūrimas
Norėdami sukurti UDF, pirmiausia pridėkite modulį prie „Excel“ darbaknygės arba, jei turite asmeninės makrokomandos darbaknygę, galite naudoti esamą modulį arba pridėti naują. Norėdami tai padaryti, turite būti „Visual Basic“ redaktoriuje (VBE). Norėdami patekti į VBE, paspauskite ALT + F11 arba juostelės skirtuke „Kūrėjas“ spustelėkite „Visual Basic“ parinktį.
PATARIMAS: Jei juostelėje neįgalintas skirtukas Kūrėjas, eikite į Failas, parinktys ir spustelėkite Tinkinti juostelę. Įsitikinkite, kad žymės langelis Kūrėjas yra pažymėtas ir spustelėkite Gerai.
Norėdami įterpti naują modulį, pasirinkite VBA projektą, į kurį norite įterpti modulį (arba dabartinės knygos VBA projektą, arba asmeninę makrokomandos darbaknygę), spustelėkite Įdėti Meniu ir spustelėkite Modulis
Sukūrę modulį, galite pradėti kurti savo UDF.
Visi UDF prasideda funkcija ir tada UDF pavadinimu. Funkcijos gali būti privačios arba viešos, tačiau paprastai norite, kad UDF būtų viešas, kad jie būtų rodomi dialogo lange „Įterpti funkciją“ „Excel“ (žr. Funkcijos naudojimą iš „Excel“ lapo toliau šiame straipsnyje). Jei prieš funkciją nenustatote asmeninio raktažodžio, funkcija automatiškai yra vieša.
123 | Funkcija TestFunction1 (intA As Integer) Kaip sveikasis skaičiusTestFunction1 = intA * 7Pabaigos funkcija |
Aukščiau pateikta funkcija turi vieną argumentą (intA). Funkciją galite sukurti naudodami kelis argumentus
123 | Funkcijos testasFunkcija2 (intA kaip sveikasis skaičius, intB kaip sveikasis skaičius, intC kaip sveikasis skaičius) kaip sveikasisTestFunction2 = (intA * intB) + intCPabaigos funkcija |
Taip pat galite sukurti funkciją su neprivalomais argumentais. Jei argumentas praleistas, funkcijoje galite nustatyti numatytąją argumento vertę.
123 | Funkcijos testas Funkcija3 (intA kaip sveikasis skaičius, intB kaip sveikasis skaičius, pasirinktinai intC kaip sveikasis skaičius = 10) kaip sveikasis skaičiusTestFunction3 = (intA * intB) + intCPabaigos funkcija |
Funkcijos naudojimas „Excel“ lape
Jūsų sukurtos funkcijos pagal numatytuosius nustatymus bus rodomos jūsų funkcijų sąraše, funkcijų sąrašo vartotojo apibrėžtame skyriuje.
Spustelėkite fx kad būtų parodytas dialogo langas Įterpti funkciją.
Pasirinkite Naudotojo apibrėžta iš kategorijų sąrašo
Pasirinkite reikiamą funkciją iš galimų Naudotojo nustatytos funkcijos.
Arba, kai pradedate rašyti savo funkciją „Excel“, funkcija turėtų būti rodoma išskleidžiamajame funkcijų sąraše.
Funkcijų išsaugojimas naudojant „Excel“ failą
Kadangi funkcijos parašytos VBA kodu, suprantama, kad kodas turi būti pasiekiamas darbaknygėje, kad jį būtų galima naudoti „Excel“ lape. Savo funkcijas galite išsaugoti darbaknygėje, kurioje jas naudojate, arba galite įrašyti į asmeninę makrokomandos darbaknygę. Jūsų asmeninė makrokomandos darbaknygė yra paslėptas failas, kuris yra prieinamas kiekvieną kartą, kai „Excel“ yra atidarytas, todėl yra prieinamas bet kuriai „Excel“ darbaknygei. Paprastai jis sukuriamas, kai įrašote makrokomandą ir pasirenkate parinktį išsaugoti makrokomandą asmeninėje makrokomandos darbaknygėje.
Jei norite, kad jūsų funkcijos būtų išsaugotos darbaknygėje, su kuria dirbate, turėsite įsitikinti, kad išsaugodami darbaknygę, ji bus išsaugota kaipMakro įjungta darbo knyga'Arba an xlsm failą.