Mundarija
Bugun biz maxsus Excel funksiyalarini o'rganishni davom ettiramiz. UDF-larni qanday yaratishni allaqachon bilganingizdek (va umid qilamanki, siz ularni Excel-da qo'llashga harakat qilgansiz), keling, biroz chuqurroq qazib olaylik va Excelda foydalanuvchi tomonidan belgilangan funktsiyalardan qanday foydalanish va saqlashni o'rganamiz.
Bundan tashqari, biz bir necha marta bosish orqali oʻz funksiyalaringizni Excel plagin faylida qanday qilib osongina saqlashni koʻrsatamiz.
Shunday qilib, biz nima haqida gaplashamiz:
Excelda UDF-dan foydalanishning turli usullari
UDF-larni ishchi varaqlarda ishlatish
UDF-larning to'g'ri ishlayotganligini tekshirganingizdan so'ng, ularni Excel-da ishlatishingiz mumkin. formulalar yoki VBA kodida.
Siz odatdagi funksiyalardan foydalanganingizdek Excel ish kitobida maxsus funksiyalarni qo'llashingiz mumkin. Masalan, katakka quyidagi formulani yozish kifoya:
= GetMaxBetween(A1:A6,10,50)
UDF oddiy funksiyalar bilan birgalikda ishlatilishi mumkin. Masalan, hisoblangan maksimal qiymatga matn qo'shing:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Natijani quyidagi skrinshotda ko'rishingiz mumkin:
Siz maksimal va 10 dan 50 gacha bo'lgan raqamni topishi mumkin.
Keling, boshqa formulani tekshirib ko'raylik:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Maxsus funksiya GetMaxBetween B2:B9 oralig'ini tekshiradi va 10 dan 50 gacha bo'lgan maksimal sonni topadi. Keyin INDEX + MATCH dan foydalanib, biz ushbu maksimal qiymatga mos keladigan mahsulot nomini olamiz:
Ko'rib turganingizdek, maxsus funktsiyalardan foydalanish oddiy Exceldan unchalik farq qilmaydifunktsiyalari.
Buni amalga oshirayotganda, foydalanuvchi tomonidan belgilangan funksiya faqat qiymatni qaytarishi mumkin, lekin boshqa amallarni bajara olmasligini unutmang. Foydalanuvchi tomonidan belgilangan funksiyalarning cheklovlari haqida koʻproq oʻqing.
UDF-dan VBA protseduralari va funksiyalarida foydalanish
UDF-lardan VBA makroslarida ham foydalanish mumkin. Quyida faol katakni o'z ichiga olgan ustunda 10 dan 50 gacha bo'lgan oraliqda maksimal qiymatni qidiradigan so'l kodni ko'rishingiz mumkin.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Hujayralar(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Hujayralar(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10,) = 5 Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubMakro kodda maxsus funksiya mavjud
GetMaxBetween(.Cells, 10, 50)
U faol ustundagi maksimal qiymatni topadi. Keyin bu qiymat ta'kidlanadi. Quyidagi skrinshotda makrosning natijasini ko'rishingiz mumkin.
Maxsus funksiyadan boshqa maxsus funksiya ichida ham foydalanish mumkin. Avvalroq blogimizda biz SpellNumber nomli maxsus funksiya yordamida raqamni matnga aylantirish muammosini ko‘rib chiqdik.
Uning yordami bilan biz diapazondan maksimal qiymatni va darhol olishimiz mumkin. uni matn sifatida yozing.
Buni amalga oshirish uchun biz yangi maxsus funksiya yaratamiz, unda biz funksiyalardan foydalanamiz.Bizga allaqachon tanish bo'lgan GetMaxBetween va SpellNumber .
SpellGetMaxBetween funksiyasi(RngHujayralar oralig'i, MinNum, Maks.Num) SpellGetMaxBetween = SpellNumber(GetMaxBetween, MinNm) FunktsiyaKo'rib turganingizdek, GetMaxBetween funksiyasi boshqa maxsus funksiya, SpellNumber uchun argumentdir. Bu maksimal qiymatni belgilaydi, biz ilgari ko'p marta qilganmiz. Keyin bu raqam matnga aylantiriladi.
Yuqoridagi skrinshotda siz SpellGetMaxBetween funksiyasi 100 dan 500 gacha va maksimal sonni qanday topishini koʻrishingiz mumkin. keyin uni matnga aylantiradi.
Boshqa ish kitoblaridan UDF qo'ng'iroq qilish
Agar siz ish daftaringizda UDF yaratgan bo'lsangiz, bu, afsuski, hech qanday muammoga duch kelmaysiz degani emas.
Mening tajribamga ko'ra, ko'pchilik foydalanuvchilar ertami-kechmi individual jarayonlar va hisob-kitoblarni avtomatlashtirish uchun shaxsiy makrolar to'plamini va maxsus funktsiyalarni yaratadilar. Va bu erda muammo paydo bo'ladi - Visual Basic-da foydalanuvchi tomonidan belgilangan funktsiyalar kodi keyinchalik ishda foydalanish uchun biron bir joyda saqlanishi kerak.
Xususiy funktsiyani qo'llash uchun uni saqlagan ish kitobi ochiq bo'lishi kerak. Excel-da. Agar shunday bo'lmasa, siz #NAMEni olasiz! foydalanishga urinishda xato. Bu xato, Excel siz formulada foydalanmoqchi bo'lgan funksiya nomini bilmasligini ko'rsatadi.
Keling, quyidagi usullarni ko'rib chiqamiz.Siz yaratgan maxsus funksiyalardan foydalanishingiz mumkin.
Usul 1. Funksiyaga ish kitobi nomini qo'shing
Siz ish kitobi nomidan oldin u joylashgan ish kitobining nomini belgilashingiz mumkin. funktsiyasi. Misol uchun, agar siz GetMaxBetween() maxsus funksiyasini My_Functions.xlsm nomli ish kitobida saqlagan bo'lsangiz, quyidagi formulani kiritishingiz kerak:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
2-usul. Barcha UDF-larni bitta umumiy faylda saqlang
Barcha maxsus funktsiyalarni bitta maxsus ish kitobida saqlang (masalan, My_Functions.xlsm ) va undan kerakli funksiyani nusxalang. agar kerak bo'lsa, joriy ish kitobi.
Har safar yangi maxsus funktsiyani yaratganingizda, uni ishlatadigan ish kitobida uning kodini takrorlashingiz kerak. Bu usul bilan bir qancha noqulayliklar paydo bo'lishi mumkin:
- Agar ishlaydigan fayllar ko'p bo'lsa va funksiya hamma joyda kerak bo'lsa, kodni har bir kitobga ko'chirish kerak bo'ladi.
- Ishchi kitobni so'l bilan faollashtirilgan formatda (.xlsm yoki .xlsb) saqlashni unutmang.
- Bunday faylni ochishda makrolardan himoyalanish har safar ogohlantirishni ko'rsatadi, bu tasdiqlanishi kerak. Ko'pgina foydalanuvchilar makroslarni yoqishni so'ragan sariq chiziqli ogohlantirishni ko'rganlarida qo'rqishadi. Ushbu xabarni ko'rmaslik uchun Excel himoyasini butunlay o'chirib qo'yishingiz kerak. Biroq, bu har doim ham to'g'ri va xavfsiz bo'lmasligi mumkin.
O'ylaymanki, siz men bilan har doim ochiq havolani ochishga rozi bo'lasiz.fayl va undan foydalanuvchi tomonidan belgilangan funksiyalar kodini nusxalash yoki ushbu fayl nomini formulada yozish eng yaxshi yechim emas. Shunday qilib, biz uchinchi yo'lga keldik.
3-usul. Excel plagin faylini yaratish
Menimcha, eng yaxshi yo'l tez-tez ishlatiladigan maxsus funktsiyalarni Excel plagin faylida saqlashdir. . Qo'shimchadan foydalanishning afzalliklari:
- Qo'shimchani Excelga bir marta ulashingiz kerak. Shundan so'ng siz ushbu kompyuterdagi istalgan faylda uning protseduralari va funktsiyalaridan foydalanishingiz mumkin. Ish kitoblaringizni .xlsm va .xlsb formatlarida saqlashingiz shart emas, chunki manba kodi ularda emas, balki plagin faylida saqlanadi.
- Makrolardan himoyalanish sizni endi bezovta qilmaydi, chunki plaginlar har doim ishonchli manbalarga murojaat qiladi.
- Qo'shimchalar alohida fayldir. Uni kompyuterdan kompyuterga o'tkazish, uni hamkasblar bilan bo'lishish oson.
Kondramani yaratish va undan foydalanish haqida keyinroq gaplashamiz.
Qo'shimchadan foydalanish maxsus funktsiyalarni saqlash uchun ins
O'z plaginimni qanday yarataman? Keling, bu jarayonni bosqichma-bosqich ko'rib chiqamiz.
1-qadam. Qo'shimcha fayl yarating
Microsoft Excel-ni oching, yangi ish kitobini yarating va uni istalgan mos nom ostida saqlang (masalan, My_Functions) plagin formatida. Buning uchun menyudan foydalaning Fayl - Boshqacha saqlash yoki F12 tugmasi. Fayl turini belgilaganingizga ishonch hosil qiling Excel plaginlari :
Sizning plaginingiz .xlam kengaytmasiga ega boʻladi.
Maslahat. Shuni esda tutingsukut bo'yicha Excel plaginlarni C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns jildida saqlaydi. Standart joylashuvni qabul qilishingizni tavsiya qilaman. Agar xohlasangiz, boshqa har qanday jildni belgilashingiz mumkin. Ammo keyin, plaginni ulashda siz uning yangi manzilini qo'lda topishingiz va belgilashingiz kerak bo'ladi. Agar siz uni standart papkada saqlasangiz, kompyuteringizda plaginni izlashingiz shart emas. Excel uni avtomatik ravishda ro'yxatga oladi.
2-qadam. Qo'shimcha faylni ulang
Endi biz yaratgan plagin Excelga ulanishi kerak. Keyin dastur boshlanganda u avtomatik ravishda yuklanadi. Buning uchun Fayl - Variantlar - Qo'shimchalar menyusidan foydalaning. Manage maydonida Excel plaginlari tanlanganligiga ishonch hosil qiling. Oynaning pastki qismidagi O'tish tugmasini bosing. Ko'rsatilgan oynada My_Functions plaginimizni belgilang. Agar uni roʻyxatda koʻrmasangiz, Browse tugmasini bosing va plagin faylingiz joylashgan joyga koʻring.
Agar siz maxsus funktsiyalarni saqlash uchun plagindan foydalansangiz, bitta oddiy qoidaga amal qilish kerak. Agar siz ish kitobini boshqa odamlarga o'tkazayotgan bo'lsangiz, kerakli funksiyani o'z ichiga olgan plaginning nusxasini ham o'tkazganingizga ishonch hosil qiling. Ular uni xuddi siz hozir qilganingizdek ulashlari kerak.
3-qadam. Qo'shimchaga maxsus funksiyalar va makroslarni qo'shing
Bizning plaginimiz Excelga ulangan, lekin u emas. hech qanday funksiyaga ega emashali. Unga yangi UDF qo'shish uchun Alt + F11 tugmalarini bosib Visual Basic muharririni oching. Keyin siz mening UDF yaratish qoʻllanmasida tasvirlanganidek VBA kodli yangi modullarni qoʻshishingiz mumkin.
Kengaytma faylingizni ( My_Finctions.xlam ) tanlang. VBAProject oynasi. Maxsus modul qo'shish uchun Qo'shish - Modul menyusidan foydalaning. Unga maxsus funksiyalarni yozishingiz kerak.
Siz foydalanuvchi belgilagan funksiya kodini qoʻlda yozishingiz yoki uni biror joydan nusxalashingiz mumkin.
Hammasi shu. Endi siz o'zingizning plaginingizni yaratdingiz, uni Excelga qo'shdingiz va unda UDF dan foydalanishingiz mumkin. Agar siz koʻproq UDF dan foydalanmoqchi boʻlsangiz, VBA muharriridagi qoʻshimcha modulga kodni yozing va uni saqlang.
Bugungidek. Biz ishchi kitobingizda foydalanuvchi tomonidan belgilangan funksiyalardan qanday foydalanishni bilib oldik. Umid qilamizki, siz ushbu ko'rsatmalarni foydali deb topasiz. Agar sizda biron bir savol bo'lsa, ushbu maqolaga sharhlarda yozing.