Isi kandungan
Hari ini kami akan terus meneroka fungsi Excel tersuai. Memandangkan anda sudah tahu cara membuat UDF (dan, saya harap, anda juga telah mencuba menggunakannya dalam Excel anda), mari kita gali lebih mendalam dan ketahui cara menggunakan dan menyimpan fungsi yang ditentukan pengguna dalam Excel.
Selain itu, kami akan menunjukkan kepada anda cara menyimpan fungsi anda dengan mudah dalam fail tambahan Excel untuk menggunakannya kemudian dalam beberapa klik.
Jadi, inilah perkara yang akan kita bincangkan:
Cara berbeza menggunakan UDF dalam Excel
Menggunakan UDF dalam lembaran kerja
Setelah anda mengesahkan bahawa UDF anda berfungsi dengan betul, anda boleh menggunakannya dalam Excel formula atau dalam kod VBA.
Anda boleh menggunakan fungsi tersuai dalam buku kerja Excel dengan cara yang sama seperti anda menggunakan fungsi biasa. Sebagai contoh, hanya tulis dalam sel formula di bawah:
= GetMaxBetween(A1:A6,10,50)
UDF boleh digunakan dalam kombinasi dengan fungsi biasa. Contohnya, tambahkan teks pada nilai maksimum yang dikira:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Anda boleh melihat hasilnya dalam tangkapan skrin di bawah:
Anda boleh mencari nombor yang kedua-duanya adalah maksimum dan berada dalam julat dari 10 hingga 50.
Mari kita semak formula lain:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Fungsi tersuai GetMaxBetween menyemak julat B2:B9 dan mencari nombor maksimum antara 10 dan 50. Kemudian, menggunakan INDEX + MATCH, kami mendapat nama produk yang sepadan dengan nilai maksimum ini:
Seperti yang anda lihat, penggunaan fungsi tersuai tidak terlalu berbeza daripada Excel biasafungsi.
Apabila melakukan ini, ingat bahawa fungsi yang ditentukan pengguna hanya boleh mengembalikan nilai, tetapi tidak boleh melakukan sebarang tindakan lain. Baca lebih lanjut tentang sekatan fungsi yang ditentukan pengguna.
Menggunakan UDF dalam prosedur dan fungsi VBA
UDF juga boleh digunakan dalam makro VBA. Di bawah anda boleh melihat kod makro yang mencari nilai maksimum dalam julat dari 10 hingga 50 dalam lajur yang mengandungi sel aktif.
Sub MacroWithUDF() Dim Rng As Julat, maxcase, i As Long With ActiveSheet.Range( Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells) Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubKod makro mengandungi fungsi tersuai
GetMaxBetween(.Cells, 10, 50)
Ia mencari nilai maksimum dalam lajur aktif. Nilai ini akan diserlahkan kemudian. Anda boleh melihat hasil makro dalam tangkapan skrin di bawah.
Fungsi tersuai juga boleh digunakan di dalam fungsi tersuai yang lain. Terdahulu dalam blog kami, kami melihat masalah menukar nombor kepada teks menggunakan fungsi tersuai bernama SpellNumber .
Dengan bantuannya, kami boleh mendapatkan nilai maksimum daripada julat dan serta-merta tuliskannya sebagai teks.
Untuk melakukan ini, kami akan mencipta fungsi tersuai baharu di mana kami akan menggunakan fungsi tersebut GetMaxBetween dan SpellNumber yang sudah biasa kepada kita.
Fungsi SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween, MinNumCells) End FungsiSeperti yang anda lihat, fungsi GetMaxBetween ialah hujah kepada fungsi tersuai lain, SpellNumber . Ia mentakrifkan nilai maksimum, seperti yang telah kita lakukan berkali-kali sebelum ini. Nombor ini kemudiannya ditukar kepada teks.
Dalam tangkapan skrin di atas, anda boleh melihat cara fungsi SpellGetMaxBetween mencari nombor maksimum antara 100 dan 500 dan kemudian menukarnya kepada teks.
Memanggil UDF daripada buku kerja lain
Jika anda telah mencipta UDF dalam buku kerja anda, ini, malangnya, tidak bermakna anda tidak akan menghadapi sebarang masalah sama sekali.
Menurut pengalaman saya, kebanyakan pengguna lambat laun mencipta koleksi makro dan fungsi tersuai peribadi mereka untuk mengautomasikan proses dan pengiraan individu. Dan di sini masalah timbul - kod fungsi yang ditentukan pengguna dalam Visual Basic perlu disimpan di suatu tempat untuk digunakan kemudian dalam kerja.
Untuk menggunakan fungsi tersuai, buku kerja tempat anda menyimpannya mesti dibuka dalam Excel anda. Jika tidak, anda akan mendapat #NAMA! ralat semasa cuba menggunakannya. Ralat ini menunjukkan bahawa Excel tidak mengetahui nama fungsi yang anda mahu gunakan dalam formula.
Mari kita lihat cara-cara dalamyang anda boleh gunakan fungsi tersuai yang anda cipta.
Kaedah 1. Tambahkan nama buku kerja pada fungsi
Anda boleh menentukan nama buku kerja di mana ia terletak sebelum nama buku kerja fungsi. Contohnya, jika anda menyimpan fungsi tersuai GetMaxBetween() dalam buku kerja bernama My_Functions.xlsm , maka anda mesti memasukkan formula berikut:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Kaedah 2. Simpan semua UDF dalam satu fail biasa
Simpan semua fungsi tersuai dalam satu buku kerja khas (contohnya, My_Functions.xlsm ) dan salin fungsi yang dikehendaki daripadanya ke dalam buku kerja semasa, jika perlu.
Setiap kali anda mencipta fungsi tersuai baharu, anda perlu menduplikasi kodnya dalam buku kerja di mana anda akan menggunakannya. Dengan kaedah ini, beberapa kesulitan mungkin timbul:
- Jika terdapat banyak fail yang berfungsi dan fungsi itu diperlukan di mana-mana, maka kod tersebut perlu disalin ke dalam setiap buku.
- Ingat untuk menyimpan buku kerja dalam format yang didayakan makro (.xlsm atau .xlsb).
- Apabila membuka fail sedemikian, perlindungan terhadap makro akan memaparkan amaran setiap kali, yang mesti disahkan. Ramai pengguna menjadi takut apabila mereka melihat amaran bar kuning yang meminta mereka mendayakan makro. Untuk mengelak daripada melihat mesej ini, anda perlu melumpuhkan perlindungan Excel sepenuhnya. Walau bagaimanapun, ini mungkin tidak selalu betul dan selamat.
Saya rasa anda akan bersetuju dengan saya bahawa setiap masa membukafail dan menyalin kod fungsi yang ditentukan pengguna daripadanya atau menulis nama fail ini dalam formula bukanlah penyelesaian terbaik. oleh itu, kami sampai ke cara ketiga.
Kaedah 3. Cipta fail tambahan Excel
Saya rasa cara terbaik ialah menyimpan fungsi tersuai yang kerap digunakan dalam fail tambahan Excel . Kelebihan menggunakan add-in:
- Anda perlu menyambungkan add-in ke Excel sekali sahaja. Selepas itu, anda boleh menggunakan prosedur dan fungsinya dalam mana-mana fail pada komputer ini. Anda tidak perlu menyimpan buku kerja anda dalam format .xlsm dan .xlsb kerana kod sumber tidak akan disimpan di dalamnya tetapi dalam fail tambahan.
- Anda tidak akan diganggu oleh perlindungan makro lagi kerana add-in sentiasa merujuk kepada sumber yang dipercayai.
- Add-in ialah fail yang berasingan. Mudah untuk memindahkannya dari komputer ke komputer, untuk berkongsi dengan rakan sekerja.
Kita akan bercakap lebih lanjut tentang membuat dan menggunakan tambahan kemudian.
Menggunakan add- ins untuk menyimpan fungsi tersuai
Bagaimanakah saya boleh membuat tambahan saya sendiri? Mari kita lalui proses ini langkah demi langkah.
Langkah 1. Cipta fail tambahan
Buka Microsoft Excel, buat buku kerja baharu dan simpan di bawah sebarang nama yang sesuai (contohnya, My_Functions) dalam format tambahan. Untuk melakukan ini, gunakan menu Fail - Simpan Sebagai atau kekunci F12. Pastikan anda menyatakan jenis fail Tambah Excel :
Tambahan anda akan mempunyai sambungan .xlam.
Petua. Sila ambil perhatian bahawasecara lalai Excel menyimpan tambahan dalam folder C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns . Saya syorkan anda menerima lokasi lalai. Jika anda mahu, anda boleh menentukan mana-mana folder lain. Tetapi kemudian, apabila menyambungkan alat tambah itu, anda perlu mencari dan menentukan lokasi baharunya secara manual. Jika anda menyimpannya dalam folder lalai, anda tidak perlu mencari alat tambah pada komputer anda. Excel akan menyenaraikannya secara automatik.
Langkah 2. Sambungkan fail tambahan
Kini tambahan yang telah kami buat perlu disambungkan ke Excel. Kemudian ia akan dimuatkan secara automatik apabila program bermula. Untuk melakukan ini, gunakan menu Fail - Pilihan - Tambahan . Pastikan Excel Add-Ins dipilih dalam medan Urus . Klik pada butang Go di bahagian bawah tetingkap. Dalam tetingkap yang muncul, tandai add-in My_Functions kami. Jika anda tidak melihatnya dalam senarai, klik butang Semak imbas dan semak imbas ke lokasi fail tambahan anda.
Jika anda sedang menggunakan alat tambah untuk menyimpan fungsi tersuai, terdapat satu peraturan mudah untuk diikuti. Jika anda memindahkan buku kerja kepada orang lain, pastikan anda juga memindahkan salinan tambahan yang mengandungi fungsi yang anda inginkan. Mereka harus menyambungkannya dengan cara yang sama seperti yang anda lakukan sekarang.
Langkah 3. Tambahkan fungsi tersuai dan makro pada alat tambah
Tambah masuk kami disambungkan ke Excel, tetapi ia tidak tidak mempunyai sebarang fungsibelum lagi. Untuk menambah UDF baharu padanya, buka Editor Visual Basic dengan menekan Alt + F11 . Kemudian anda boleh menambah modul baharu dengan kod VBA seperti yang diterangkan dalam tutorial Cipta UDF saya.
Pilih fail tambahan anda ( My_Finctions.xlam ) dalam tetingkap VBAProject. Gunakan menu Sisipkan - Modul untuk menambah modul tersuai. Anda perlu menulis fungsi tersuai ke dalamnya.
Anda boleh menaip kod fungsi yang ditentukan pengguna secara manual atau menyalinnya dari mana-mana.
Itu sahaja. Kini anda telah mencipta tambahan anda sendiri, menambahkannya pada Excel dan anda boleh menggunakan UDF di dalamnya. Jika anda ingin menggunakan lebih banyak UDF, cuma tulis kod dalam modul tambahan dalam editor VBA dan simpannya.
Itu sahaja untuk hari ini. Kami telah mempelajari cara menggunakan fungsi yang ditentukan pengguna dalam buku kerja anda. Kami sangat berharap anda mendapati garis panduan ini membantu. Jika anda mempunyai sebarang soalan, tulis dalam ulasan artikel ini.