VBA funkcije - Vodič za stvaranje prilagođene funkcije pomoću VBA

Excel VBA funkcije

Vidjeli smo da možemo koristiti funkcije radnog lista u VBA, tj. Funkcije excel radnog lista u VBA kodiranju pomoću application.worksheet metode, ali kako koristimo funkciju VBA u excelu, pa takve funkcije se nazivaju korisnički definirane funkcije, kada korisnik kreira funkciju u VBA-u, ona se također može koristiti u Excelovom radnom listu.

Iako u Excelu imamo mnogo funkcija za upravljanje podacima, ponekad moramo imati neke prilagodbe u alatima kako bismo mogli uštedjeti svoje vrijeme dok opetovano radimo neke zadatke. U Excelu imamo unaprijed definirane funkcije poput SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH u excelu itd., Ali svakodnevno radimo neke zadatke za koje pojedinačna naredba ili funkcija nisu dostupne u Excelu, a zatim pomoću VBA, možemo stvoriti prilagođenu funkciju koja se naziva Korisnički definirane funkcije (UDF).

Što rade VBA funkcije?

  • Oni provode određene proračune; i
  • Vrati vrijednost

Tijekom definiranja funkcije u VBA-u koristimo sljedeću sintaksu da odredimo parametre i njihov tip podataka.

Vrsta podataka ovdje je vrsta podataka koju će varijabla sadržavati. Može sadržavati bilo koju vrijednost (bilo koju vrstu podataka ili objekt bilo koje klase).

Objekt možemo povezati s njegovim svojstvom ili metodom pomoću točke ili točke (.).

Kako stvoriti prilagođene funkcije pomoću VBA?

Primjer

Pretpostavimo da imamo sljedeće podatke iz škole u kojoj moramo pronaći ukupne ocjene učenika, rezultat i ocjenu.

Što se tiče zbrajanja ocjena koje je pojedinačni učenik postigao iz svih predmeta, imamo ugrađenu funkciju, tj. SUM, no kako bismo saznali ocjenu i rezultat na temelju kriterija koje je škola postavila, zadani zadaci u Excelu nisu dostupni .

To je razlog zašto trebamo stvoriti korisnički definirane funkcije.

Korak 1: Pronađite ukupne ocjene

Prvo ćemo pronaći ukupne ocjene pomoću funkcije SUM u Excelu.

Pritisnite Enter da biste dobili rezultat.

Povucite Formulu do ostatka stanica.

Da bi se sada saznao rezultat (prošao, promašio ili bitno ponovio), kriterij koji je škola postavila je takav.

  • Ako je student postigao više od ili jednako 200 kao ukupni broj bodova od 500, a student također nije uspio pasti iz bilo kojeg predmeta (postigao je više od 32 iz svakog predmeta), tada je student položen,
  • Ako je student postigao više od ili jednako 200, ali student nije uspio iz 1 ili 2 predmeta, tada je student dobio "Osnovno ponavljanje" za te predmete,
  • Ako je student postigao manje od 200 ili nije uspio iz 3 ili više predmeta, tada student nije uspio.
Korak 2: Stvorite funkciju ResultOfStudent

Da bismo stvorili funkciju pod nazivom 'ResultOfStudent', moramo otvoriti „Visual Basic Editor“ pomoću bilo koje od dolje navedenih metoda:

  • Korištenjem Excelove kartice Developer.

Ako kartica Developer nije dostupna u MS Excelu, to možemo dobiti pomoću sljedećih koraka:

  • Desnom tipkom miša kliknite bilo gdje na vrpci, a zatim odaberite Prilagodi vrpcu u excelu ' .

Kada odaberemo ovu naredbu, otvara se dijaloški okvir "Excel Options" .

  • Moramo potvrditi okvir za "Developer" da bismo otvorili karticu.
  • Korištenjem prečaca, tj. Alt + F11.
  • Kada otvorimo VBA editor, trebamo umetnuti modul tako što ćemo otići na izbornik Umetni i odabrati modul.
  • U modul moramo zalijepiti sljedeći kod.
Funkcija ResultOfStudents (Označava kao raspon) Kao niz Zatamni mycell Kao raspon Zatamni Ukupno kao cjelovito Dim CountOfFailedSubject Kao cijelo za svaku mycell u Oznakama Ukupno = Ukupno + mycell.Value Ako je mycell.Value = 200 I CountOfFailedSubject 0 Tada ResultOfStutialIndefat "ResultOfStutialIndefat" Ukupno> = 200 i CountOfFailedSubject = 0 Tada su ResultOfStudents = "Prošli" Inače ResultOfStudents = "Neuspjeli" Kraj ako završi funkcija

Gornja funkcija vraća rezultat učeniku.

Moramo razumjeti kako ovaj kod funkcionira.

Prva izjava, 'Function ResultOfStudents (Označava kao raspon) kao niz', deklarira funkciju pod nazivom 'ResultOfStudents' koja će prihvatiti raspon kao ulaz za oznake i vratit će rezultat kao niz.

Zatamni moju ćeliju kao raspon Zatamni ukupno kao cjelovito zatamni CountOfFailedSubject kao cjelovito

Ove tri izjave deklariraju varijable, tj.

  • 'myCell' kao raspon,
  • 'Ukupno' kao cjelovito (za pohranjivanje ukupnih ocjena koje je student postigao),
  • 'CountOfFailedSubject' kao cijeli broj (za pohranu broja predmeta u kojima student nije uspio).
Za svaku mycell u oznakama Ukupno = Ukupno + mycell.Value Ako je mycell.Value <33 Tada je CountOfFailedSubject = CountOfFailedSubject + 1 End If Next mycell

Ovaj kod provjerava svaku ćeliju u rasponu ' Oznake' i dodaje vrijednost svake ćelije u varijabli ' Ukupno' , a ako je vrijednost ćelije manja od 33, tada dodaje 1 u varijablu 'CountOfFailedSubject' .

Ako je ukupno> = 200 i CountOfFailedSubject 0, tada je ResultOfStudents = "Essential Repeat" ElseIf Total> = 200 And CountOfFailedSubject = 0 Tada je ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If

Ovaj kôd provjerava vrijednost "Ukupno" i "CountOfFailedSubject" i prosljeđuje " Essential Report", "Passed" ili "Failed" u skladu s "ResultOfStudents".

Korak 3: Primijenite funkciju ResultOfStudents da biste dobili rezultat

Funkcija ResultOfStudents uzima ocjene, tj. Odabir 5 bodova koje je student postigao.

Sada odaberite Raspon ćelija, tj. B2: F2.

Povucite Formulu do ostatka Ćelija.

Korak 4: Stvorite funkciju 'GradeForStudent' da biste dobili ocjene

Sada da bismo saznali ocjenu za učenika, stvorit ćemo još jednu funkciju pod nazivom 'GradeForStudent'.

The code would be:

Function GradeForStudent(TotalMarks As Integer, Result As String) As String If TotalMarks> 440 And TotalMarks 380 And TotalMarks 320 And TotalMarks 260 And TotalMarks = 200 And TotalMarks <= 260 And (Result = "Passed" Or Result = "Essential Repeat") Then GradeForStudent = "E" ElseIf TotalMarks < 200 Or Result = "Failed" Then GradeForStudent = "F" End If End Function

This function assigns a ‘Grade’ to the student based on the ‘Total Marks’ and ‘Result.’

We just need to write the formula and open the brackets in Cell H2 and pressing Ctrl+Shift+A to find out about the arguments.

Funkcija GradeForStudent uzima ukupne ocjene (zbroj ocjena) i rezultat učenika kao argument za izračunavanje ocjene.

Sada odaberite odgovarajuće stanice, tj. G2, H2.

Sada samo trebamo pritisnuti Ctrl + D nakon odabira ćelija za kopiranje formula.

Vrijednosti manje od 33 možemo istaknuti crvenom bojom pozadine kako bismo saznali predmete u kojima student nije uspio.

Zanimljivi članci...