Funkcije VBA - Vodnik za ustvarjanje funkcije po meri z uporabo VBA

Excel VBA funkcije

Videli smo, da lahko uporabimo funkcije delovnega lista v VBA, tj. Funkcije excelovega delovnega lista v kodiranju VBA z uporabo metode application.worksheet, kako pa uporabimo funkcijo VBA v excelu, no take funkcije imenujemo uporabniško določene funkcije, ko uporabnik ustvari funkcijo v VBA, jo lahko uporabi tudi v delovnem listu excel.

Čeprav imamo v Excelu veliko funkcij za obdelavo podatkov, moramo včasih v orodjih imeti nekaj prilagoditev, da lahko prihranimo svoj čas, ko večkrat opravljamo nekatere naloge. V Excelu imamo vnaprej določene funkcije, kot so SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH v Excelu itd., Vendar vsakodnevno izvajamo nekatere naloge, za katere en ukaz ali funkcija v Excelu ni na voljo, nato pa z VBA lahko ustvarimo funkcijo po meri, ki se imenuje uporabniško določene funkcije (UDF).

Kaj počnejo funkcije VBA?

  • Opravljajo določene izračune; in
  • Vrni vrednost

V VBA med definiranjem funkcije z naslednjo sintakso določimo parametre in njihov podatkovni tip.

Podatkovni tip tukaj je vrsta podatkov, ki jih bo imela spremenljivka. Vsebuje lahko katero koli vrednost (kateri koli podatkovni tip ali predmet katerega koli razreda).

Predmet lahko povežemo z njegovo lastnostjo ali metodo z uporabo pike ali pike (.).

Kako ustvariti funkcije po meri z uporabo VBA?

Primer

Recimo, da imamo naslednje podatke iz šole, kjer moramo najti skupno oceno, ki jo je dosegel učenec, rezultat in ocena.

Za seštevanje ocen, ki jih je posamezen učenec dosegel pri vseh predmetih, imamo vgrajeno funkcijo, tj. SUM, vendar ugotovitev ocene in rezultata na podlagi meril, ki jih določi šola, v Excelu privzeto ni na voljo .

To je razlog, zakaj moramo ustvariti uporabniško določene funkcije.

1. korak: Poiščite skupne ocene

Najprej bomo z uporabo funkcije SUM v Excelu našli skupne ocene.

Pritisnite Enter, da dobite rezultat.

Povlecite formulo do preostalih celic.

Zdaj, da bi ugotovili rezultat (uspešno opravljen, neuspešen ali bistven ponovitev), so merila, ki jih je določila šola

  • Če je študent dosegel več kot 200 ali enak 200 kot skupna ocena od 500 in študent prav tako ni neuspešen pri nobenem predmetu (je pri vsakem predmetu dosegel več kot 32), potem je študent opravljen,
  • Če je študent dosegel oceno 200 ali več, vendar študent ni uspel pri 1 ali 2 predmetih, potem je študent pri teh predmetih prejel »Bistveno ponovitev«,
  • Če študent doseže bodisi manj kot 200 bodisi pri treh ali več predmetih ne uspe, potem študent ne uspe.
2. korak: Ustvarite funkcijo ResultOfStudent

Če želite ustvariti funkcijo z imenom 'ResultOfStudent', moramo odpreti »Urejevalnik Visual Basic« s katero koli od spodnjih metod:

  • Z uporabo zavihka Developer excel.

Če zavihek razvijalec ni na voljo v programu MS Excel, ga lahko dobimo z naslednjimi koraki:

  • Z desno miškino tipko kliknite kjer koli na traku in izberite Prilagodi trak v Excelu ' .

Ko izberemo ta ukaz, se odpre pogovorno okno »Excel Options« .

  • Za zavihek moramo potrditi polje »Razvijalec «.
  • Z uporabo bližnjične tipke, tj. Alt + F11.
  • Ko odpremo urejevalnik VBA, moramo modul vstaviti tako, da odpremo meni Vstavi in ​​izberemo modul.
  • V modul moramo prilepiti naslednjo kodo.
Funkcija ResultOfStudents (Označi kot obseg) Kot niz Zatemni mycell Kot obseg Dim Skupaj kot celo število Dim CountOfFailedSubject Kot celo število Za vsak mycell v oznakah Skupaj = Skupaj + mycell.Value Če je mycell.Value = 200 In CountOfFailedSubject 0 Potem ResultOfStucialIf Skupaj> = 200 In CountOfFailedSubject = 0 Potem je ResultOfStudents = "Opravljeno" Drugačno ResultOfStudents = "Neuspešno" Konec, če konča funkcija

Zgornja funkcija študentu vrne rezultat.

Razumeti moramo, kako deluje ta koda.

Prva izjava, "Function ResultOfStudents (Označuje kot obseg) kot niz", razglasi funkcijo z imenom "ResultOfStudents", ki bo sprejela obseg kot vhod za oznake in bo rezultat vrnila kot niz.

Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer

These three statements declare variables, i.e.,

  • ‘myCell’ as a Range,
  • ‘Total’ as Integer (to store total marks scored by a student),
  • ‘CountOfFailedSubject’ as integer (to store the number of subjects in which a student has failed).
For Each mycell In Marks Total = Total + mycell.Value If mycell.Value < 33 Then CountOfFailedSubject = CountOfFailedSubject + 1 End If Next mycell

This code checks for every cell in the ‘Marks’ range and adds the value of every cell in the ‘Total’ variable, and if the value of the cell is less than 33, then adds 1 to the ‘CountOfFailedSubject’ variable.

If Total>= 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If

This code checks the value of ‘Total’ and ‘CountOfFailedSubject’ and passes the Essential Report,’ ‘Passed,’ or ‘Failed’ accordingly to the ‘ResultOfStudents.’

Step 3: Apply ResultOfStudents Function to Get Result

ResultOfStudents function takes marks, i.e., selection of 5 marks scored by the student.

Now Select the Range of cells, i.e., B2: F2.

Drag the Formula to the rest of the Cells.

Step 4: Create ‘GradeForStudent’ Function to get Grades

Now to find out the grade for the student, we will create one more function named ‘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 kot argument za izračun ocene vzame skupne ocene (vsoto ocen) in rezultat študenta.

Zdaj izberite ustrezne celice, tj. G2, H2.

Zdaj moramo samo pritisniti Ctrl + D, potem ko smo izbrali celice za kopiranje formul.

Vrednosti, manjše od 33, lahko označimo z rdečo barvo ozadja, tako da ugotovimo predmete, pri katerih študent ni uspel.

Zanimive Članki...