Autor:
Alice Brown
Dátum Stvorenia:
4 Smieť 2021
Dátum Aktualizácie:
15 Smieť 2024
Obsah
Aj keď má Excel veľa, pravdepodobne stovky vstavaných funkcií, ako sú SUM, VLOOKUP, LEFT, atď., Keď začnete používať Excel na zložitejšie úlohy, často zistíte, že potrebujete funkciu, ktorá neexistuje. Nebojte sa, všetko nie je stratené; všetko, čo potrebujete, je vytvoriť požadovanú funkciu.
Kroky
- Vytvorte nový zošit alebo otvorte zošit, kde chcete použiť svoju novo vytvorenú funkciu definovanú používateľom (FDU).
-
Otvorte editor jazyka Visual Basic ktorý je zabudovaný do programu Microsoft Excel prechodom do sekcie Nástroje-> Makro-> Editor jazyka (alebo stlačením klávesov Alt + F11). -
Pridajte nový modul do svojho zošita kliknutím na uvedené tlačidlo. Užívateľom definovanú funkciu môžete vytvoriť v samotnom pracovnom hárku bez pridania nového modulu, čo vám však zabráni v použití v iných pracovných hárkoch v rovnakom zošite. -
Vytvorte „hlavičku“ alebo „prototyp“ svojej funkcie. Musíte mať nasledujúcu štruktúru: verejná funkcia TheNameOfYourFunction (param1 ako typ1, param2 ako typ2) ako returnType Môže existovať ľubovoľný počet parametrov a ich typom môže byť ktorýkoľvek zo základných dátových typov alebo typov objektov Excel, napríklad Range. Parametre si môžete predstaviť ako „operandy“, na ktoré bude vaša funkcia pôsobiť. Napríklad keď poviete SIN (45) na výpočet sínusu 45 stupňov, bude sa hodnota 45 považovať za parameter. Váš funkčný kód potom použije túto hodnotu na vykonanie nejakého výpočtu a na prezentáciu výsledku. - Pridajte kód funkcie a uistite sa, že: 1) použite hodnoty poskytované parametrami; 2) výsledok priraďte k názvu funkcie; a 3) ukončite funkciu „koncovou funkciou“. Naučenie sa programovania vo VBA alebo v akomkoľvek inom jazyku môže chvíľu trvať a vyžaduje podrobný návod. Funkcie však často majú malé bloky kódu a využívajú málo jazykových prostriedkov. Najužitočnejšie prvky jazyka VBA sú:
- Blok Ak, ktorá umožňuje spustiť časť kódu iba v prípade, že je splnená podmienka. Napríklad:
Public Function CourseResult (mriežka ako celé číslo) ako reťazec
Ak známka> = 5 Potom
CourseResult = "Schválené"
Inak
CourseResult = "Zamietnuté"
Koniec Ak
Koncová funkcia
Všimnite si prvky v bloku kódu Ak:IF podmienka POTOM kód ELSE kód END IF. Kľúčové slovo Inak spolu s druhou časťou kódu sú voliteľné.
- Blok Z, ktorý vykoná kus kódu Zatiaľ čo (zatiaľ) alebo Až do (do) je splnená podmienka. Napríklad:
Public Function IsPrime (value As Integer) As Boolean
Dim i As Integer
i = 2
IsPrime = True
Z
Ak hodnota / i = Int (hodnota / i), potom
IsPrime = False
Koniec Ak
i = i + 1
Smyčka While i <value And IsPrime = True
Koncová funkcia
Znova sa pozrite na prvky:DO code LOOP WHILE / AŽ DO podmienky. Všimnite si tiež druhý riadok, kde je „deklarovaná“ premenná. Do svojho kódu môžete pridať premenné, aby ste ich mohli neskôr použiť. Premenné pôsobia v kóde ako dočasné hodnoty. Na záver sa pozrite na deklaráciu funkcie ako BOOLEAN, čo je dátový typ, ktorý umožňuje iba hodnoty TRUE a FALSE. Táto metóda určovania, či je číslo prvočíslo, nie je ideálna, ale radšej to nechám tak, aby sa kód ľahšie čítal.
- Blok Pre, ktorý vykoná kus kódu zadaný počet krát. Napríklad:
Faktoriál verejnej funkcie (hodnota ako celé číslo) Pokiaľ
Stlmený výsledok Tak dlho
Dim i As Integer
Ak hodnota = 0 Potom
výsledok = 1
ElseIf hodnota = 1 Potom
výsledok = 1
Inak
výsledok = 1
Pre i = 1 Do hodnoty
výsledok = výsledok * i
Ďalšie
Koniec Ak
Faktoriál = výsledok
Koncová funkcia
Znova sa pozrite na prvky:PRE premenná = spodná hranica DO horná hranica kód ĎALŠIE. Všimnite si tiež prvok Ináč Ak doplnené vo vyhlásení Ak, ktorá umožňuje pridať ďalšie možnosti vykonania kódu. Nakoniec sa pozrite na deklaráciu funkcie a premennú „result“ na Dlhé. Typ údajov Dlhé umožňuje oveľa vyššie hodnoty ako ‘Integer‘.
Nižšie je uvedený kód funkcie, ktorá prevádza čísla na slová.
- Blok Ak, ktorá umožňuje spustiť časť kódu iba v prípade, že je splnená podmienka. Napríklad:
- Vráťte sa do svojho zošita a túto funkciu použijeme tak, že začneme obsah bunky znakom a rovný za ktorým nasleduje názov vašej úlohy. Pridajte úvodnú zátvorku k názvu funkcie, parametre sú oddelené znakom čiarka a záverečná zátvorka. Napríklad:= NumberToLetters (A4) Používaný vzorec môžete tiež použiť tak, že ho vyhľadáte v kategórii Definované užívateľom v Sprievodcovi zadajte vzorec. Stačí kliknúť na tlačidlo Fx nachádza sa vľavo od panela vzorcov. Parametre môžu byť troch typov:
- Konštantné hodnoty zadávané priamo do vzorca bunky. V takom prípade musia byť reťazce uvedené v úvodzovkách.
- Odkazy na bunky ako B6 alebo intervaly ako A1: C3 (parameter musí byť typu Prestávka"")
- Ďalšie funkcie usporiadané v rámci vašej funkcie (vaša funkcia môže byť tiež zoskupená v rámci iných funkcií). To znamená: = Faktoriál (MAX (D6: D8))
- Skontrolujte, či je výsledok v poriadku po niekoľkonásobnom použití funkcie sa uistite, že správne spracováva rôzne hodnoty parametrov:
Tipy
- Kedykoľvek píšete blok kódu v rámci riadiacej štruktúry, ako sú If, For, Do atď., Nezabudnite blok odsadiť pomocou nejakých medzier alebo tabulátorov (štýl odsadenia je na vás).Týmto spôsobom bude váš kód ľahšie pochopiteľný a bude oveľa jednoduchšie zistiť chyby a vylepšiť kód.
- Excel má veľa zabudovaných funkcií a väčšinu výpočtov je možné vykonať samostatne alebo v kombinácii. Pred spustením vlastného kódu prehľadajte zoznam dostupných funkcií. Vykonanie môže byť rýchlejšie, ak použijete vstavané funkcie.
- Na výpočet výsledku nemusí funkcia niekedy vyžadovať všetky parametre. V takom prípade môžete použiť kľúčové slovo Voliteľné pred názvom parametra v hlavičke funkcie. Môžete použiť IsMissing (parameter_name) v rámci kódu na určenie, či bola parametru priradená hodnota alebo nie.
- Ak neviete, ako napísať kód funkcie, prečítajte si článok Ako napísať jednoduché makro v programe Microsoft Excel.
- Použite názov, ktorý ešte nie je definovaný ako názov funkcie v programe Excel, inak budete môcť používať iba jednu z funkcií.
Varovania
- Z bezpečnostných dôvodov môžu niektorí ľudia deaktivovať makrá. Dajte svojim kolegom vedieť, že kniha, ktorú odosielate, má makrá a dá sa im dôverovať, pretože nepoškodia vaše počítače.
- Funkcie použité v tomto článku nie sú najlepším spôsobom riešenia spomenutých problémov. Používali sa iba na vysvetlenie použitia štruktúr riadenia jazykov.
- VBA, ako každý iný jazyk, má okrem Do, If a For aj niekoľko ďalších riadiacich štruktúr. Boli tu vysvetlené len na objasnenie toho, čo je možné urobiť v rámci zdrojového kódu funkcie. Existuje veľa online návodov, kde sa môžete naučiť VBA.