Kelebihan dan kelemahan fungsi tersuai dalam Excel

  • Berkongsi Ini
Michael Brown

Kami meneruskan siri tutorial tentang fungsi yang ditentukan pengguna. Dalam artikel kami sebelum ini, kami berkenalan dengan fungsi tersuai dan belajar cara mencipta dan menggunakannya. Dalam manual ini, kita akan melihat spesifikasi penggunaan fungsi ini dan melihat perbezaan antara makro UDF dan VBA.

Dalam tutorial ini, kita akan mempelajari perkara berikut:

    Kami berharap artikel ini akan meningkatkan pengetahuan anda tentang UDF dan membantu anda menggunakannya dengan lebih berkesan dalam buku kerja Excel anda.

    Adakah UDF dan Makro perkara yang sama?

    Kedua-dua fungsi yang ditakrifkan pengguna dan VBA makro dicipta menggunakan editor VBA. Apakah perbezaan antara mereka dan apa yang perlu diberi keutamaan?

    Perbezaan yang paling penting ialah fungsi melakukan pengiraan dan makro melakukan beberapa tindakan. Fungsi yang ditentukan pengguna, seperti fungsi Excel biasa, mesti ditulis dalam sel. Hasil daripada pelaksanaannya, sel mengembalikan beberapa nilai. Pada masa yang sama, adalah mustahil untuk menukar nilai sel lain, serta beberapa sifat sel semasa (khususnya, pemformatan). Walau bagaimanapun, anda boleh menggunakan fungsi tersuai dalam formula pemformatan bersyarat.

    Makro UDF dan VBA berfungsi dengan cara yang berbeza. Sebagai contoh, apabila anda mencipta UDF dalam Editor Visual Basic, anda bermula dengan pernyataan Fungsi dan berakhir dengan Fungsi Tamat . Apabila anda merakam makro, anda bermula dengan apernyataan Sub dan berakhir dengan End Sub.

    Bukan semua pengendali Visual Basic boleh digunakan untuk mencipta UDF. Atas sebab ini, makro ialah penyelesaian yang lebih serba boleh.

    Makro tidak memerlukan pengguna untuk menghantar sebarang hujah (ia juga tidak boleh menerima sebarang hujah), tidak seperti fungsi yang ditentukan pengguna.

    Maksudnya ialah beberapa arahan makro boleh menggunakan alamat sel atau elemen pemformatan (contohnya, warna). Jika anda mengalihkan sel, menambah atau mengalih keluar baris dan lajur, menukar format sel, maka anda boleh "memecahkan" makro anda dengan mudah. Ini amat mungkin jika anda berkongsi fail anda dengan rakan sekerja yang tidak mengetahui cara makro anda berfungsi.

    Sebagai contoh, anda mempunyai fail dengan makro yang berfungsi dengan sempurna. Formula ini mengira peratusan sel A1 hingga A4. Makro menukar warna sel ini kepada kuning. Format peratusan ditetapkan dalam sel aktif.

    Jika anda atau orang lain memutuskan untuk memasukkan baris baharu, makro akan terus mencari nilai dalam sel A4 ( parameter 4,1 dalam UDF anda), gagal dan mengembalikan ralat:

    Dalam kes ini, ralat berlaku disebabkan pembahagian dengan sifar (tiada nilai dalam yang baru ditambah baris). Sekiranya makro berfungsi, katakan, penjumlahan, maka anda hanya akan mendapat hasil yang salah. Tetapi anda tidak akan tahu mengenainya.

    Berbeza dengan makro, fungsi yang ditentukan pengguna tidak boleh menyebabkan situasi yang tidak menyenangkan seperti itu.

    Di bawah anda melihat prestasipengiraan yang sama menggunakan UDF. Di sini anda boleh menentukan sel input di mana-mana dalam lembaran kerja dan anda tidak akan menghadapi sebarang isu yang tidak dijangka apabila menukarnya.

    Saya menulis formula berikut dalam C3:

    =UDF_vs_Macro(A1,A4)

    Kemudian saya memasukkan baris kosong dan formula berubah seperti yang anda boleh lihat dalam tangkapan skrin di atas.

    Kini kita boleh mengalihkan sel input atau sel dengan fungsi ke mana-mana sahaja. Hasilnya akan sentiasa betul.

    Faedah tambahan menggunakan UDF ialah ia mengemas kini secara automatik apabila nilai dalam sel input berubah. Apabila menggunakan makro, anda mesti sentiasa memastikan bahawa semua data adalah terkini.

    Mengingat contoh ini, saya lebih suka menggunakan UDF di mana mungkin dan menggunakan makro hanya untuk aktiviti bukan pengiraan yang lain.

    Keterbatasan dan keburukan menggunakan UDF

    Saya telah menyatakan kelebihan UDF di atas. Pendek kata, ia boleh melakukan pengiraan yang tidak boleh dilakukan dengan fungsi Excel standard. Di samping itu, ia boleh menyimpan dan menggunakan formula yang panjang dan kompleks, mengubahnya menjadi satu fungsi. Dan anda tidak perlu menulis formula yang rumit berulang kali.

    Sekarang mari kita bincangkan dengan lebih terperinci tentang kelemahan UDF:

    • Mencipta UDF memerlukan penggunaan VBA. Tidak ada jalan lain. Ini bermakna pengguna tidak boleh merakam UDF dengan cara yang sama seperti makro Excel. Anda perlu mencipta UDF sendiri. Walau bagaimanapun, anda boleh menyalin dantampal bahagian kod makro yang direkodkan sebelum ini ke dalam fungsi anda. Anda hanya perlu sedar tentang had fungsi tersuai.
    • Satu lagi kelemahan UDF ialah seperti mana-mana fungsi Excel lain, ia hanya boleh mengembalikan satu nilai atau tatasusunan nilai ke dalam sel. Ia hanya melakukan pengiraan, tidak lebih.
    • Jika anda ingin berkongsi buku kerja anda dengan rakan sekerja anda, pastikan anda menyimpan UDF anda dalam fail yang sama. Jika tidak, fungsi tersuai anda tidak akan berfungsi untuknya.
    • Fungsi tersuai yang dibuat dengan editor VBA adalah lebih perlahan daripada fungsi biasa. Ini amat ketara dalam meja besar. Malangnya, VBA adalah bahasa pengaturcaraan yang sangat perlahan setakat ini. Oleh itu, jika anda mempunyai banyak data, cuba gunakan fungsi standard apabila boleh, atau buat UDF menggunakan fungsi LAMBDA.

    Had Fungsi Tersuai:

    • UDF ialah direka untuk melakukan pengiraan dan mengembalikan nilai. Ia tidak boleh digunakan sebagai ganti makro.
    • Ia tidak boleh menukar kandungan mana-mana sel lain (hanya sel aktif).
    • Nama fungsi mesti mengikut peraturan tertentu. Contohnya, anda tidak boleh menggunakan nama yang sepadan dengan nama fungsi Excel asli atau alamat sel, seperti AB123.
    • Fungsi tersuai anda tidak boleh mengandungi ruang dalam nama, tetapi ia boleh termasuk aksara garis bawah. Walau bagaimanapun, kaedah yang diutamakan ialah menggunakan huruf besar pada setiap permulaan yang baharuperkataan (contohnya, GetMaxBetween).
    • UDF tidak boleh menyalin dan menampal sel ke kawasan lain lembaran kerja.
    • Mereka tidak boleh menukar lembaran kerja aktif.
    • UDF boleh' t ubah pemformatan dalam sel aktif. Jika anda ingin menukar pemformatan sel apabila memaparkan nilai yang berbeza, anda harus menggunakan pemformatan bersyarat.
    • Ia tidak boleh membuka buku tambahan.
    • Ia tidak boleh digunakan untuk menjalankan makro menggunakan Application.OnTime .
    • Fungsi yang ditentukan pengguna tidak boleh dibuat menggunakan perakam makro.
    • Fungsi tidak muncul dalam Pembangun > Dialog Macros .
    • Fungsi anda akan muncul dalam kotak dialog ( Sisipkan > Fungsi ) dan dalam senarai fungsi hanya jika ia diisytiharkan sebagai Awam (ini adalah lalai, melainkan dinyatakan sebaliknya).
    • Sebarang fungsi yang diisytiharkan sebagai Peribadi tidak akan muncul dalam senarai ciri.

    Pengendalian yang agak perlahan , serta beberapa sekatan yang sedang digunakan, mungkin membuatkan anda berfikir: "Apakah kegunaan fungsi tersuai ini?"

    Ia boleh berguna dan boleh dilakukan jika kita mengambil berat tentang kekangan yang dikenakan ke atasnya. Jika anda belajar cara membuat dan menggunakan UDF dengan betul, anda boleh menulis perpustakaan fungsi anda. Ini akan meluaskan keupayaan anda untuk bekerja dengan data dalam Excel.

    Bagi saya, fungsi tersuai adalah penjimat masa yang hebat. Dan bagaimana pula dengan anda? Adakah anda sudah mencuba mencipta UDF anda sendiri? Adakah anda menyukainyalebih baik daripada fungsi asas Excel? Mari bincangkannya dalam Komen :)

    Michael Brown ialah peminat teknologi yang berdedikasi dengan semangat untuk memudahkan proses kompleks menggunakan alat perisian. Dengan lebih sedekad pengalaman dalam industri teknologi, beliau telah mengasah kemahirannya dalam Microsoft Excel dan Outlook, serta Helaian Google dan Dokumen. Blog Michael berdedikasi untuk berkongsi pengetahuan dan kepakarannya dengan orang lain, menyediakan petua dan tutorial yang mudah diikuti untuk meningkatkan produktiviti dan kecekapan. Sama ada anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan pandangan berharga dan nasihat praktikal untuk memanfaatkan sepenuhnya alatan perisian penting ini.