Fungsi Ditentukan Pengguna dalam VBA - Bagaimana Membuat UDF? (Contoh)

Fungsi Ditetapkan Pengguna Excel VBA (UDF)

Microsoft melayani kami dengan banyak fungsi terbina dalam untuk mempercepat kerja di excel. Walau bagaimanapun, dengan menggunakan pengekodan VBA, kita dapat membuat fungsi kita sendiri dan fungsi tersebut secara teknikal disebut "Fungsi yang Ditentukan Pengguna" (UDF). Mereka juga disebut sebagai "fungsi khusus" dalam excel VBA.

Segala formula yang dapat diakses dari lembaran kerja dengan sekeping kod disebut sebagai UDF. Dengan kata mudah, sebarang formula yang tidak terbina dalam tetapi tersedia di Excel disebut Fungsi Ditetapkan Pengguna.

Bagaimana Membuat Fungsi yang Ditentukan Pengguna?

Walaupun UDF adalah sebahagian daripada modul kami, mereka bukan sebahagian dari Subrutin biasa kami di VBA. Ini dipanggil Prosedur Fungsi di VBA. Seperti bagaimana kita memulakan pengekodan makro dengan kata SUB sama, kita harus memulai ini dengan menggunakan kata "Fungsi." Sub prosedur mempunyai permulaan dan Tamat, juga Prosedur Fungsi untuk Memulakan dan Menamatkan.

Contoh # 1 - Buat Fungsi Jumlah UDF Ringkas

Kami akan membuat fungsi SUM kami sendiri di excel dengan menambahkan dua nombor.

  • Untuk memulakan pengekodan, mulailah kata "Fungsi" di salah satu modul.
  • Seperti bagaimana kita menamakan makro, kita juga harus memberikan nama untuk Fungsi kita. Nama ini digunakan sebagai nama formula.

Tidak seperti subrutin, kita tidak boleh menekan enter untuk membuat prosedur, tetapi kita perlu menyebutkan hujah di sini.

Contohnya, lihat sintaks di bawah fungsi lembaran kerja SUM.

Nombor 1, Nombor 2 adalah argumen fungsi SUM.

  • Begitu juga, kita perlu menyebutkan hujah kita.

Di sini saya telah menyatakan argumen sebagai "x sebagai Integer" dan "y sebagai Integer." Oleh kerana kita menambah nilai berangka, kita hanya perlu menetapkan jenis data sebagai jenis data berangka sahaja.

Setelah menyatakan argumen, saya telah menetapkan jenis pengembalian Integer juga kerana hasil yang diberikan oleh Fungsi “OurSum” juga merupakan nilai berangka.

  • Sekarang di dalam fungsi, kita perlu menyebutkan formula yang akan kita gunakan. Di sini kita perlu menggunakan fungsi untuk memulakannya.

Kami menyebut nama formula " OurSum " harus menambah x dan y.

  • Ok, simpan kod dan pergi ke lembaran kerja.
  • Saya telah memasukkan beberapa nombor di sini. Buka tanda sama dan mula menaip OurSum. Anda dapat melihat nama formula muncul di sini.
  • Seperti bagaimana kita memilih sel sama pilih dua sel secara berasingan.
  • Setelah memilih dua sel, tekan butang enter untuk mendapatkan hasil.

Oleh itu, ia berfungsi sama seperti fungsi SUM biasa kita.

  • Ok, sekarang saya akan menukar nombor.
  • Sekali lagi, saya akan menerapkan fungsi yang telah kita buat.

Oh !!! Kami mendapat nilai ralat kecuali sel pertama.

Anda mesti memikirkan mengapa kami mendapat ralat.

Sekiranya anda melihat sel A2 dan B2, kami mempunyai nilai 48170 dan 21732. Oleh kerana kami telah menetapkan jenis data sebagai Integer, ia tidak boleh memuat bilangan lebih dari 32767. Inilah sebabnya kami mendapat ralat excel sebagai #NUM !.

Sekarang saya akan menambah nombor yang kurang daripada 32767.

Dalam gambar di atas, semua nombor adalah nombor bulat, iaitu kurang dari 32767.

Di sel pertama, kami mendapat hasilnya. Tetapi di sel kedua, iaitu sel C2, kita mendapat nilai ralat sebagai # NILAI !.

Walaupun kedua-dua nombor kurang dari 32767, kami masih mendapat kesalahan.

Ini kerana kami telah menyatakan hasil akhirnya juga sebagai Integer.

Jadi apabila kita menambah 16000 dan 17229, kita akan mendapat nilai seperti 33229, yang lebih daripada had jenis data integer 32767. Jadi hasil akhirnya adalah nilai ralat.

Contoh # 2 - Buat Fungsi untuk Menguji Nilai Logik

Kami akan membuat satu fungsi lagi untuk menguji nilai logik. Kita memerlukan fungsi yang mengembalikan "Baik" jika angka itu> = 60, dan kita memerlukan hasilnya sebagai "Buruk" jika angka itu <= 50.

Langkah 1: Mulakan Prosedur Fungsi dan beri nama untuk prosedur tersebut.

Langkah 2: Berikan argumen sebagai TestScore sebagai Integer.

Langkah 3: Hasil akhir kami mestilah "Baik" atau "Buruk", jadi hasilnya harus dalam Rentetan.

Langkah 4: Pertama, kita perlu menguji sama ada skornya> = 60 atau tidak. Gunakan keadaan JIKA untuk menguji.

Langkah 5: Jika skor ujian adalah> = 60, kita memerlukan fungsi untuk mengembalikan hasilnya sebagai "Bagus." Jadi TestResult = "Bagus."

Langkah 6: Sekiranya skor ujian kurang dari 60, maka hasil fungsinya mestilah "Buruk."

Ok, kita sudah selesai.

  • Simpan kod dan pergi ke lembaran kerja.

Saya telah memasukkan beberapa nombor di sini sebagai skor ujian.

  • Terapkan fungsi yang telah kita buat untuk mendapatkan hasil.
  • Pilih sel dan tekan enter.

Inilah maksud UDF.

Artikel menarik...