VBA funktsioonid - Juhend kohandatud funktsiooni loomiseks VBA abil

Lang L: none (table-of-contents)

Exceli VBA funktsioonid

Oleme näinud, et saame VBA-s kasutada töölehe funktsioone, st Exceli töölehe funktsioone VBA kodeerimisel, kasutades application.worksheet meetodit, kuid kuidas me kasutame VBA funktsiooni Excelis, hästi nimetatakse neid funktsioone kasutaja määratletud funktsioonideks, kui kasutaja loob funktsiooni VBA-s, saab seda kasutada ka Exceli töölehel.

Kuigi meil on Excelis andmete töötlemiseks palju funktsioone, peavad mõnikord tööriistades olema mõned kohandused, et saaksime oma aega kokku hoida, kui teeme mõnda ülesannet korduvalt. Meil on Excelis eelnevalt määratletud funktsioonid nagu SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH Excelis jne. Kuid me teeme igapäevaselt mõningaid ülesandeid, mille puhul üks käsk või funktsioon pole Excelis saadaval, seejärel kasutades VBA, saame luua kohandatud funktsiooni, mida nimetatakse kasutaja määratud funktsioonideks (UDF).

Mida teevad VBA funktsioonid?

  • Nad teevad teatud arvutusi; ja
  • Tagastab väärtuse

VBA-s funktsiooni määratlemisel kasutame parameetrite ja nende andmetüübi täpsustamiseks järgmist süntaksit.

Andmetüüp on siin andmetüüp, mida muutuja hoiab. See võib sisaldada mis tahes väärtust (mis tahes andmetüüp või mis tahes klassi objekt).

Saame objekti ühendada selle omaduse või meetodiga, kasutades punkti või punkti (.) Sümbolit.

Kuidas luua VBA abil kohandatud funktsioone?

Näide

Oletame, et meil on järgmised andmed koolist, kus peame leidma õpilase kogutulemid, tulemuse ja hinde.

Kõigi õppeainete individuaalse õpilase hinnete kokkuvõtteks on meil sisseehitatud funktsioon, st SUM, kuid hinne ja tulemuse väljaselgitamine kooli seatud kriteeriumide alusel pole Excelis vaikimisi saadaval .

See on põhjus, miks peame looma kasutaja määratletud funktsioonid.

1. samm: leidke märgid kokku

Kõigepealt leiame Excelis funktsiooni SUM abil kogumärgid.

Tulemuse saamiseks vajutage sisestusklahvi Enter.

Lohistage valem ülejäänud lahtritesse.

Nüüd, et teada saada tulemus (läbitud, ebaõnnestunud või oluline kordus), on kooli seatud kriteeriumid sellised.

  • Kui üliõpilane on saavutanud hinded 500-st rohkem kui 200 või rohkem ja õpilane ei ole ka üheski õppeaines läbi kukkunud (on igas õppeaines saanud rohkem kui 32), siis õpilane sooritatakse
  • Kui õpilane on hinnanud rohkem kui 200, kuid õpilane on ebaõnnestunud 1 või 2 õppeaines, on õpilane saanud nendes õppeainetes olulise korduse,
  • Kui õpilane on hinnanud kas vähem kui 200 või ebaõnnestunud 3 või enamas õppeaines, siis õpilane ebaõnnestub.
2. samm: looge funktsioon ResultOfStudent

Funktsiooni ResultOfStudent loomiseks peame avama Visual Basic Editor, kasutades mõnda järgmistest meetoditest:

  • Vahekaardi Arendaja abil paistab silma.

Kui vahekaart Arendaja pole MS Excelis saadaval, saame selle järgmiste sammude abil:

  • Paremklõpsake lindi suvalises kohas ja valige käsk Kohanda linti Excelis .

Selle käsu valimisel avaneb dialoogiboks „Exceli suvandid” .

  • Vahekaardi saamiseks peame märkima ruudu „Arendaja” .
  • Kasutades kiirklahvi, st Alt + F11.
  • VBA-redaktori avamisel peame sisestama mooduli, minnes menüüsse Lisa ja valides mooduli.
  • Peame moodulisse kleepima järgmise koodi.
Funktsioon ResultOfStudents (märgib vahemikuna) stringina Dim mycell As Range Dim Total as Integer Dim CountOfFailedSubject Integer for my mycell in Marks Total = Total + mycell.Value If mycell.Value = 200 And CountOfFailedSubject 0 then ResultOfStudents = "Essential Repeat" ElseIf Kokku> = 200 Ja CountOfFailedSubject = 0, siis ResultOfStudents = "Läbitud" Muud ResultOfStudents = "Ebaõnnestunud" Lõpeta, kui funktsioon Lõpp

Ülaltoodud funktsioon tagastab õpilase jaoks tulemuse.

Peame mõistma, kuidas see kood töötab.

Esimene lause „Funktsioon ResultOfStudents (märgib vahemikus) stringina” deklareerib funktsiooni nimega „ResultOfStudents” , mis aktsepteerib vahemiku märkide sisendina ja tagastab tulemuse stringina.

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.

Funktsioon GradeForStudent võtab hinde arvutamisel argumendina kokku hinded (punktide summa) ja õpilase tulemuse.

Nüüd valige vastavad lahtrid, st G2, H2.

Nüüd peame pärast lahtrite valimist valemite alla kopeerimiseks vajutama Ctrl + D.

Võime punase taustavärviga esile tuua väärtused, mis on väiksemad kui 33, et saaksime teada õppeained, milles õpilane ebaõnnestus.

Huvitavad Artiklid...