ВБА функције - Водич за креирање прилагођене функције помоћу ВБА

Преглед садржаја

Екцел ВБА функције

Видели смо да можемо да користимо функције радног листа у ВБА, тј. Функције екцел радног листа у ВБА кодирању помоћу апплицатион.ворксхеет методе, али како користимо функцију ВБА у екцелу, па такве функције се називају кориснички дефинисане функције, када корисник креира функцију у ВБА, она се такође може користити у радном листу Екцел.

Иако у Екцелу имамо много функција за манипулисање подацима, понекад морамо имати неке прилагодбе у алатима како бисмо могли уштедети своје време док радимо неке задатке више пута. У Екцелу имамо унапред дефинисане функције попут СУМ, ЦОУНТИФ, СУМИФ, ЦОУНТИФС, ВЛООКУП, ИНДЕКС, МАТЦХ у екцелу итд., Али свакодневно радимо неке задатке за које појединачна команда или функција нису доступне у програму Екцел, а затим помоћу ВБА, можемо створити прилагођену функцију која се назива Кориснички дефинисане функције (УДФ).

Шта раде ВБА функције?

  • Они врше одређене прорачуне; и
  • Врати вредност

У ВБА, док дефинишемо функцију, користимо следећу синтаксу да одредимо параметре и њихов тип података.

Тип података овде је тип података који ће променљива садржати. Може садржати било коју вредност (било који тип података или објекат било које класе).

Објекат можемо повезати са његовим својством или методом помоћу тачке или тачке (.).

Како створити прилагођене функције помоћу ВБА?

Пример

Претпоставимо да имамо следеће податке из школе у ​​којој морамо да пронађемо укупне оцене које је постигао ученик, резултат и оцена.

Што се тиче сумирања оцена које је појединачни ученик постигао из свих предмета, имамо уграђену функцију, тј. СУМ, али да бисмо сазнали оцену и резултат на основу критеријума које је школа поставила, подразумевано није доступно у програму Екцел .

То је разлог зашто треба да креирамо кориснички дефинисане функције.

Корак 1: Пронађите укупне оцене

Прво ћемо пронаћи укупне оцене помоћу функције СУМ у екцелу.

Притисните Ентер да бисте добили резултат.

Превуците Формулу до остатка ћелија.

Сада да би се сазнао резултат (прошао, промашио или битно поновио), критеријум који је школа поставила је такав.

  • Ако је студент постигао више од или једнако 200 као укупан број бодова од 500, а студент такође није пао ни из једног предмета (постигао је више од 32 из сваког предмета), тада је студент положен,
  • Ако је студент постигао више од или једнако 200, али студент није успео из 1 или 2 предмета, тада је студент добио „Основно понављање“ из тих предмета,
  • Ако је студент постигао мање од 200 или није успео из 3 или више предмета, тада студент није успео.
Корак 2: Креирајте функцију РесултОфСтудент

Да бисмо креирали функцију која се зове 'РесултОфСтудент', морамо да отворимо „Висуал Басиц Едитор“ користећи било који од метода у наставку:

  • Коришћењем програма Девелопер таб екцел.

Ако картица Девелопер није доступна у МС Екцел-у, то можемо добити помоћу следећих корака:

  • Кликните десним тастером миша било где на врпци, а затим одаберите Прилагоди траку у Екцелу ' .

Када одаберемо ову наредбу, отвара се дијалошки оквир „Екцел Оптионс“ .

  • Морамо да означимо поље „Девелопер“ да бисмо добили картицу.
  • Коришћењем пречице, тј. Алт + Ф11.
  • Када отворимо ВБА едитор, морамо да убацимо модул тако што ћемо отићи у мени Уметање и одабрати модул.
  • У модул треба да залепимо следећи код.
Функција РесултОфСтудентс (Означава као опсег) Као низ Затамни мићелију Као опсег Заборави Укупно као целобројно Затамни ЦоунтОфФаиледСубјецт Као целобројно за сваку мићелију у оценама Укупно = Укупно + мицелл.Валуе Ако је мицелл.Валуе = 200 И ЦоунтОфФаиледСубјецт 0 Тада је РесултОфСтутиалИндефат " Укупно> = 200 И ЦоунтОфФаиледСубјецт = 0 Тада је РесултОфСтудентс = "Прошло" Иначе РесултОфСтудентс = "Неуспело" Крај ако заврши функција

Горња функција враћа резултат ученику.

Морамо да разумемо како овај код функционише.

Прва изјава, 'Фунцтион РесултОфСтудентс (Маркс Ас Ранге) Ас Стринг', декларише функцију која се зове 'РесултОфСтудентс' која ће прихватити опсег као улаз за ознаке и вратит ће резултат као низ.

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.

Функција ГрадеФорСтудент узима аргументе Укупно (збир оцена) и резултат ученика као аргумент за израчунавање оцене.

Сада изаберите одговарајуће ћелије, тј. Г2, Х2.

Сада само треба да притиснемо Цтрл + Д након што одаберемо ћелије за копирање формула.

Вредности мање од 33 можемо означити црвеном бојом позадине тако да сазнамо предмете у којима студент не успева.

Занимљиви Чланци...