VBA funkcijos - Vadovas, kaip sukurti pritaikytą funkciją naudojant VBA

„Excel VBA“ funkcijos

Mes matėme, kad darbalaukio funkcijas galime naudoti VBA, ty „Excel“ darbalapio funkcijas VBA koduojant, naudojant „application.worksheet“ metodą, tačiau kaip mes naudojame VBA funkciją „Excel“ programoje, tokios funkcijos vadinamos vartotojo apibrėžtomis funkcijomis, kai vartotojas sukuria funkciją VBA, ją taip pat galima naudoti „Excel“ darbalapyje.

Nors „Excel“ programoje turime daug funkcijų, kad galėtume manipuliuoti duomenimis, kartais įrankiuose turime šiek tiek pritaikyti, kad galėtume sutaupyti laiko, kai pakartotinai atliekame kai kurias užduotis. Mes turime iš anksto nustatytas „Excel“ funkcijas, tokias kaip SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH in excel ir kt., Bet mes kasdien atliekame kai kurias užduotis, kurioms „Excel“ nėra vienos komandos ar funkcijos, tada naudodami VBA, mes galime sukurti pasirinktinę funkciją, vadinamą vartotojo nustatytomis funkcijomis (UDF).

Ką veikia VBA funkcijos?

  • Jie atlieka tam tikrus skaičiavimus; ir
  • Grąžinkite vertę

VBA, apibrėždami funkciją, naudojame šią sintaksę, norėdami nurodyti parametrus ir jų duomenų tipą.

Duomenų tipas yra duomenų, kuriuos laikys kintamasis, tipas. Jame gali būti bet kokia reikšmė (bet koks duomenų tipas ar bet kurios klasės objektas).

Objektą su jo ypatybe ar metodu galime susieti naudodami taško arba taško (.) Simbolį.

Kaip sukurti pasirinktines funkcijas naudojant VBA?

Pavyzdys

Tarkime, kad turime šiuos duomenis iš mokyklos, kurioje turime rasti mokinio įvertinimus, rezultatą ir pažymį.

Apibendrinant kiekvieno mokinio įvertinimus, surinktus visuose dalykuose, turime integruotą funkciją, ty SUM, tačiau norint nustatyti pažymį ir rezultatą pagal mokyklos nustatytus kriterijus, „Excel“ nėra numatytoji parinktis .

Tai yra priežastis, kodėl turime sukurti vartotojo apibrėžtas funkcijas.

1 veiksmas: suraskite bendrus ženklus

Pirma, naudodami SUM funkciją „Excel“ rasime bendrus pažymius.

Paspauskite Enter, kad gautumėte rezultatą.

Vilkite formulę į likusias langelius.

Dabar, norint sužinoti rezultatą (išlaikytas, nepavykęs arba esminis pakartojimas), mokyklos nustatyti kriterijai yra tokie.

  • Jei studentas surinko daugiau ar lygų 200 kaip bendras įvertinimas iš 500, o studentas taip pat nėra nesėkmingas nė viename dalyke (kiekviename dalyke surinko daugiau nei 32), tada studentas išlaikomas,
  • Jei studentas surinko daugiau ar lygų 200, bet mokinys nesėkmingas 1 ar 2 dalykuose, studentas gavo „Esminis pakartojimas“ šiuose dalykuose
  • Jei studentas surinko mažiau nei 200 balų arba nesugebėjo išlaikyti 3 ar daugiau dalykų, studentas nesėkmingas.
2 žingsnis: sukurkite funkciją „ResultOfStudent“

Norėdami sukurti funkciją pavadinimu „ResultOfStudent“, turime atidaryti „Visual Basic Editor“ naudodami bet kurį iš toliau nurodytų metodų:

  • Naudodamiesi „Developer“ skirtuku „Excel“.

Jei „MS Excel“ skirtuko „Kūrėjas“ nėra, tai galime gauti atlikdami šiuos veiksmus:

  • Dešiniuoju pelės mygtuku spustelėkite bet kurią juostos vietą, tada pasirinkite Tinkinti juostelę „Excel“ .

Kai pasirenkame šią komandą, atsidaro dialogo langas „Excel Options“ .

  • Norėdami gauti skirtuką, turime pažymėti langelį „Kūrėjas“ .
  • Naudojant spartųjį klavišą, ty Alt + F11.
  • Kai atidarome VBA redaktorių, turime įterpti modulį, eidami į meniu Įterpti ir pasirinkdami modulį.
  • Turime įklijuoti šį kodą į modulį.
Funkcija ResultOfStudents (Pažymėti kaip diapazonas) Kaip eilutė Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject kaip Integer kiekvienam mycell Marks Iš viso = Iš viso + mycell.Value Jei mycell.Value = 200 Ir CountOfFailedSubject 0 Tada ResultOfStudents = "Esminis pakartojimas" ElseIf Iš viso> = 200 Ir CountOfFailedSubject = 0, tada ResultOfStudents = "Perduota" Kita ResultOfStudents = "Nepavyko" Pabaiga, jei baigiasi funkcija

Pirmiau nurodyta funkcija grąžina studento rezultatą.

Turime suprasti, kaip veikia šis kodas.

Pirmasis teiginys „Funkcijos„ ResultOfStudents “(kaip pažymėtas kaip diapazonas) kaip eilutė“ deklaruoja funkciją, pavadintą „ResultOfStudents“ , kuri priims diapazoną kaip įvestį ženklams ir grąžins rezultatą kaip eilutę.

„Dim mycell As Range“ „Dim Total“ kaip sveikas skaičius „Dim CountOfFailedSubject“ kaip sveikas skaičius

Šie trys teiginiai skelbia kintamuosius, ty

  • „myCell“ kaip diapazonas,
  • „Iš viso“ kaip sveikasis skaičius (norint išsaugoti visus studento įvertinimus),
  • 'CountOfFailedSubject' kaip sveikasis skaičius (norint išsaugoti dalykų, kuriems nepavyko studentui, skaičių).
Kiekvienam „mycell“ ženklu iš viso = iš viso + „mycell.Value“, jei „mycell.Value“ <33, tada „CountOfFailedSubject“ = „CountOfFailedSubject“ + 1 pabaiga, jei kitas „mycell“

Šis kodas patikrina kiekvieną langelį diapazone „ Ženklai“ ir prideda kiekvieno langelio reikšmę kintamajame „ Iš viso“ , o jei langelio vertė yra mažesnė nei 33, tada prie „CountOfFailedSubject“ kintamojo pridedama 1 .

Jei Iš viso> = 200 Ir CountOfFailedSubject 0, tada ResultOfStudents = "Esminis pakartojimas" ElseIf Iš viso> = 200 Ir CountOfFailedSubject = 0 Tada ResultOfStudents = "Perduotas" Kitas ResultOfStudents = "Nepavyko" Pabaiga

Šis kodas patikrina „Total“ ir „CountOfFailedSubject“ vertes ir atitinkamai „ResultOfStudents“ perduoda Essential Report“, „Passed“ arba „Failed“.

3 žingsnis: Norėdami gauti rezultatą, pritaikykite funkciją „ResultOfStudents“

Funkcija „ResultOfStudents“ įgyja pažymių, ty 5 pažymių, kuriuos surenka studentas, pasirinkimą.

Dabar pasirinkite langelių diapazoną, ty B2: F2.

Vilkite formulę į likusias ląsteles.

4 žingsnis: sukurkite funkciją „GradeForStudent“, kad gautumėte įvertinimus

Dabar norėdami sužinoti studento pažymį, sukursime dar vieną funkciją pavadinimu „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“ kaip argumentą skaičiuojant pažymį ima balų sumą (balų sumą) ir studento rezultatą.

Dabar pasirinkite atitinkamas langelius, ty G2, H2.

Dabar mums tiesiog reikia paspausti Ctrl + D , pasirinkę langelius, kad nukopijuotumėte formules.

Raudona fono spalva galime išryškinti mažiau nei 33 reikšmes, kad sužinotume dalykus, kurių studentas nesėkmingas.

Įdomios straipsniai...