Fungsi VBA - Panduan Membuat Fungsi Custom menggunakan VBA

Isi kandungan

Fungsi Excel VBA

Kita telah melihat bahawa kita dapat menggunakan fungsi lembar kerja di VBA, yaitu fungsi lembaran kerja excel dalam pengekodan VBA menggunakan metode application.worksheet, tetapi bagaimana kita menggunakan fungsi VBA di excel, fungsi seperti itu disebut fungsi yang ditentukan pengguna, apabila pengguna membuat fungsi dalam VBA, ia juga boleh digunakan dalam lembaran kerja excel.

Walaupun kita memiliki banyak fungsi untuk memanipulasi data, kadang-kadang kita perlu melakukan penyesuaian dalam alat sehingga kita dapat menjimatkan masa kita ketika kita melakukan beberapa tugas berulang kali. Kami mempunyai fungsi yang telah ditentukan dalam excel seperti SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH dalam excel, dll. Tetapi kami melakukan beberapa tugas setiap hari yang mana satu perintah atau fungsi tidak tersedia di Excel, kemudian dengan menggunakan VBA, kita dapat membuat fungsi khusus yang disebut Fungsi Ditetapkan Pengguna (UDF).

Apa yang dilakukan oleh Fungsi VBA?

  • Mereka menjalankan pengiraan tertentu; dan
  • Kembalikan nilai

Dalam VBA, semasa menentukan fungsi, kami menggunakan sintaks berikut untuk menentukan parameter dan jenis datanya.

Jenis data di sini adalah jenis data yang akan disimpan oleh pemboleh ubah. Ia boleh menyimpan nilai apa pun (jenis data atau objek kelas mana pun).

Kita boleh menghubungkan objek dengan sifat atau kaedahnya dengan menggunakan simbol titik atau titik (.).

Bagaimana Membuat Fungsi Custom menggunakan VBA?

Contohnya

Katakan kita mempunyai data berikut dari sekolah di mana kita perlu mencari jumlah markah yang dijaringkan oleh pelajar, hasil dan gred.

Untuk merumuskan markah yang dijaringkan oleh seorang pelajar dalam semua mata pelajaran, kami mempunyai fungsi bawaan, iaitu, SUM, tetapi untuk mengetahui nilai dan keputusan berdasarkan kriteria yang ditetapkan oleh sekolah tidak tersedia dalam Excel secara lalai .

Inilah sebab mengapa kita perlu membuat fungsi yang ditentukan pengguna.

Langkah 1: Cari Jumlah Markah

Pertama, kita akan menemui jumlah markah menggunakan fungsi SUM di excel.

Tekan Enter untuk mendapatkan hasilnya.

Seret Formula ke sel yang lain.

Sekarang untuk mengetahui Hasilnya (Lulus, Gagal, atau Ulangan Penting), kriteria yang ditetapkan oleh sekolah adalah seperti itu.

  • Sekiranya pelajar telah mendapat markah lebih dari atau sama dengan 200 sebagai jumlah markah daripada 500 dan pelajar tersebut juga tidak gagal dalam mana-mana mata pelajaran (telah mendapat markah lebih dari 32 dalam setiap mata pelajaran), maka pelajar tersebut akan berjaya,
  • Sekiranya pelajar telah mendapat markah lebih dari atau sama dengan 200, tetapi pelajar tersebut gagal dalam 1 atau 2 mata pelajaran, maka seorang pelajar telah mendapat "Pengulangan Penting" dalam mata pelajaran tersebut,
  • Sekiranya pelajar berjaya mendapat markah kurang dari 200 atau gagal dalam 3 atau lebih mata pelajaran, maka pelajar tersebut gagal.
Langkah 2: Buat Fungsi ResultOfStudent

Untuk membuat fungsi bernama 'ResultOfStudent,' kita perlu membuka "Visual Basic Editor" dengan menggunakan salah satu kaedah di bawah ini:

  • Dengan menggunakan excel tab Developer.

Sekiranya tab Pembangun tidak tersedia di MS Excel, maka kita dapat memperolehnya dengan menggunakan langkah-langkah berikut:

  • Klik kanan di mana sahaja pada pita kemudian, Pilih Customize the Ribbon in excel ' .

Apabila kita memilih perintah ini, kotak dialog "Pilihan Excel" terbuka.

  • Kita perlu mencentang kotak "Pembangun" untuk mendapatkan tab.
  • Dengan menggunakan kekunci pintasan, iaitu Alt + F11.
  • Semasa kita membuka editor VBA, kita perlu memasukkan modul dengan pergi ke menu Sisip dan memilih modul.
  • Kita perlu menampal kod berikut ke dalam modul.
Hasil FungsiOfStudents (Marks As Range) Sebagai String Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject Sebagai Integer Untuk Setiap mycell Dalam Marks Total = Total + mycell.Value If mycell.Value = 200 And CountOfFailedSubject 0 Kemudian ResultOfStudents = "Essential Repeat Jumlah> = 200 Dan CountOfFailedSubject = 0 Kemudian ResultOfStudents = "Lulus" Else ResultOfStudents = "Gagal" Tamat Jika Fungsi Akhir

Fungsi di atas mengembalikan hasil untuk pelajar.

Kita perlu memahami bagaimana kod ini berfungsi.

Pernyataan pertama, 'Function ResultOfStudents (Marks As Range) As String,' menyatakan fungsi yang dinamakan 'ResultOfStudents' yang akan menerima julat sebagai input untuk markah dan akan mengembalikan hasilnya sebagai rentetan.

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.

Fungsi GradeForStudent mengambil Jumlah markah (jumlah markah) dan hasil pelajar sebagai hujah untuk mengira gred.

Sekarang Pilih sel masing-masing, iaitu, G2, H2.

Sekarang kita hanya perlu menekan Ctrl + D setelah memilih sel untuk menyalin formula.

Kita dapat menonjolkan nilai kurang dari 33 dengan warna latar merah sehingga kita dapat mengetahui mata pelajaran pelajar gagal.

Artikel menarik...