Excel VBA funkció oktatóanyag: Visszatérés, hívás, példák
⚡ Okos összefoglaló
Az Excel VBA függvényei olyan kódblokkok, amelyek végrehajtanak egy feladatot, és eredményt adnak vissza a megnevezett cellának. Ez az oldal a deklarációs szintaxist, az érték visszaadását, egy összeadási példát és a függvények használatát tárgyalja egy munkalapcellán belül.

Mi az a függvény?
A függvény egy kódrészlet, amely egy adott feladatot hajt végre, és eredményt ad vissza. A függvényeket többnyire ismétlődő feladatok végrehajtására használják, mint például a kimeneti adatok formázása, számítások végrehajtása stb.
Tegyük fel, hogy fejlesztő vagyping Egy program, amely kiszámítja a kölcsön kamatát. Létrehozhatsz egy függvényt, amely elfogadja a kölcsön összegét és a visszafizetési időszakot. A függvény ezután a kölcsön összegét és a visszafizetési időszakot felhasználva kiszámíthatja a kamatot és visszaadhatja az értéket.
Miért használjunk függvényeket?
A függvények használatának előnyei megegyeznek az alprogramoknál felsoroltakkal: egy hosszú programot kezelhető részekre bontnak, a projekt bármely pontjáról újrafelhasználhatók, és egy leíró név dokumentálja a kód működését. Excel VBA alprogram oktatóanyag teljes mértékben fedezi ezeket a juttatásokat.
A függvények elnevezésének szabályai
Az elnevezési szabályok megegyeznek az alprogramokra vonatkozókkal. A függvénynév nem tartalmazhat szóközt, betűvel vagy aláhúzásjellel kell kezdődnie, és nem lehet foglalt függvénynév. VBA kulcsszó, például Függvény, Privát vagy Vége.
VBA szintaxis a függvény deklarálásához
Private Function myFunction (ByVal arg1 As Integer, ByVal arg2 As Integer) myFunction = arg1 + arg2 End Function
ITT a szintaxisban,
| Code | Akció |
|---|---|
|
|
|
|
|
|
|
|
Érték visszaadása és a függvény adattípusának beállítása
Egy függvénynek egyetlen feladata van, ami egy alprogramnak nincs: visszaad egy értéket. Két részlet vezérli ezt az értéket, és mindkettőt könnyű figyelmen kívül hagyni.
Az első az értékadás. A VBA-ban nincs Return utasítás. Ehelyett az eredményt a függvény saját nevéhez rendeljük, ezért olvasható a sor myFunction = arg1 + arg2Ha az értékadás soha nem fut le, a függvény hiba helyett csendben üres értéket ad vissza, így a kód minden ágának be kell állítania azt.
A második a visszatérési típus. A fenti deklaráció a záró zárójelnél végződik, így a függvény egy Variant értéket ad vissza. Az As záradék hozzáadása a zárójelek után rögzíti a típust, ami gyorsabb, kevesebb memóriát használ, és lehetővé teszi a fordító számára az eltérések észlelését.
| Nyilatkozat | Visszatér | Mikor kell használni |
|---|---|---|
| f(x függvény, amennyi ideig) | Változat | Csak akkor, ha az eredmény típusa valóban változik |
| f(x függvény Among Long) Among Long | Hosszú | Egész számok, például darabszámok és sorszámok |
| f(x függvény, amíg) Double | Double | Bármely tizedesjegyeket előállító számítás |
| f(x) függvény, amely karakterláncként írható | Húr | Formázott szöveg visszaadása megjelenítésre |
| f(x) függvény, As Long, mint Boole-függvény | logikai | Egy érvényességi ellenőrzés, amely igaz vagy hamis választ ad |
💡 Tipp: Az Exit függvénnyel korábban kiléphetünk, miután a visszatérési érték be van állítva, ugyanúgy, ahogy az Exit Sub kilép egy alprogramból.
Példával bemutatott funkció:
A funkciók nagyon hasonlóak az alprogramhoz. A fő különbség a szubrutin és a függvény között az, hogy a függvény meghívásakor értéket ad vissza. Míg egy szubrutin nem ad vissza értéket, meghívásakor. Tegyük fel, hogy két számot szeretne hozzáadni. Létrehozhat olyan függvényt, amely két számot fogad el, és a számok összegét adja vissza.
- Hozza létre a felhasználói felületet
- Adja hozzá a függvényt
- Írjon kódot a parancsgombhoz
- Tesztelje a kódot
Step 1) Felhasználói felület
Adjon hozzá egy parancsgombot a munkalaphoz az alábbiak szerint
Állítsa a CommandButton1 következő tulajdonságait a következőre.
| S / N | Vezérlés | Ingatlanok | Érték: |
|---|---|---|---|
| 1 | Parancsgomb1 | Név | btnAddNumbers |
| 2 | Képaláírás | hozzáad Numbers Funkció |
A felületnek most a következőképpen kell megjelennie
Step 2) Funkciókód.
- Nyomja meg az Alt + F11 billentyűt a kódablak megnyitásához
- Adja hozzá a következő kódot
Private Function addNumbers(ByVal firstNumber As Integer, ByVal secondNumber As Integer) addNumbers = firstNumber + secondNumber End Function
ITT a kódban,
| Code | Akció |
|---|---|
|
|
|
|
|
|
3. lépés) Írás Code amely meghívja a függvényt
- Jobb klikk a Hozzáadás gombraNumbers parancsgomb
- Nézet kiválasztása Code
- Adja hozzá a következő kódot
Private Sub btnAddNumbers_Click() MsgBox addNumbers(2, 3) End Sub
ITT a kódban,
| Code | Akció |
|---|---|
| „MsgBox hozzáNumbers(egy)" |
|
Step 4) Futtassa a programot, a következő eredményeket kapja
Töltse le a fenti kódot tartalmazó Excelt
A fenti gomb VBA-kódból hívja meg a függvényt. Egy függvény magából a munkalapról is meghívható, gomb nélkül.
VBA függvény használata egy munkalapcellában
Egy VBA-ban írt függvény pontosan úgy írható be egy cellába, mint a SZUM vagy a FKERES. Az Excel ezt felhasználó által definiált függvénynek (UDF) nevezi, és ez az oka annak, hogy sokan a függvényeket az alprogramok előtt tanulják meg. Három feltételnek kell teljesülnie.
- Helyezze el egy szabványos modulban: Beszúrás, Modul a szerkesztőben. A munkalap mögött vagy a ThisWorkbook mappában tárolt függvények nem láthatók a képletsávon.
- Nyilvánossá nyilvánítás: A fenti példa a Private kulcsszót használja, amely elrejti azt az Excelből. Az alapértelmezett érték a Public, így elegendő a kulcsszó eltávolítása.
- Értéket ad vissza, semmit sem változtat: Egy UDF nem tud cellákat formázni, sorokat törölni vagy másik cellába írni. Az Excel blokkolja ezeket a műveleteket, és a cella #ÉRTÉK! hibát jelenít meg.
Az alábbi függvény hőmérsékletet konvertál, és a munkalap bármely pontján használható.
Public Function CelsiusToF(ByVal Celsius As Double) As Double CelsiusToF = (Celsius * 9 / 5) + 32 End Function
Mentse a munkafüzetet makróbarát .xlsm fájlként, majd írja be a következőt: =CelsiusF(A1) bármelyik cellába. Az eredmény az A1 cellában bekövetkező változások után frissül, és a név megjelenik a képlet automatikus kiegészítési listájában a Felhasználó által definiált kategória alatt. Mivel a munkafüzet most már makrókat tartalmaz, a megnyitónak engedélyeznie kell a tartalmat, mielőtt a képlet értéket adna vissza a #NÉV? hibakód helyett.
Gyakori VBA függvényhibák és javításuk
Négy probléma magyarázza a legtöbb olyan függvényt, amelyek lefordulnak, de rossz választ adnak vissza.
- A függvény üres vagy 0 értéket ad vissza: Az eredményt soha nem rendeltük hozzá a függvény nevéhez, vagy egy If utasítás egyik ága kihagyja az értékadást. Állítsa be a visszatérési értéket minden elérési úton.
- #NÉV? egy munkalap cellájában: A függvény privát, egy munkalap modulban található egy standard modul helyett, vagy a munkafüzetet makrók engedélyezése nélkül mentették.
- Túlcsordulás egész argumentumokkal: A példa az As Integer függvényt használja, amely 32 767-nél megáll. Valós adatok esetén módosítsa mindkét paramétert és a visszatérési típust Long értékre.
- Egy megváltozott érvelés meglepi a hívót: A ByVal elhagyása esetén a VBA magát a változót adja át, így a függvény módosíthatja a hívó értékét. Írja be a ByVal értéket, kivéve, ha ezt a hatást szeretné.



