ສາລະບານ
ພວກເຮົາກໍາລັງສືບຕໍ່ຊຸດຂອງບົດສອນກ່ຽວກັບຫນ້າທີ່ກໍານົດຂອງຜູ້ໃຊ້. ໃນບົດຄວາມທີ່ຜ່ານມາຂອງພວກເຮົາ, ພວກເຮົາໄດ້ຮູ້ຈັກກັບຫນ້າທີ່ກໍານົດເອງແລະຮຽນຮູ້ວິທີການສ້າງແລະນໍາໃຊ້ພວກມັນ. ໃນຄູ່ມືນີ້ພວກເຮົາຈະເບິ່ງສະເພາະຂອງການນໍາໃຊ້ຫນ້າທີ່ເຫຼົ່ານີ້ແລະເບິ່ງຄວາມແຕກຕ່າງລະຫວ່າງ UDFs ແລະ VBA macro.
ໃນບົດສອນນີ້, ພວກເຮົາຈະຮຽນຮູ້ຕໍ່ໄປນີ້:
ພວກເຮົາຫວັງວ່າບົດຄວາມນີ້ຈະເພີ່ມຄວາມຮູ້ຂອງທ່ານກ່ຽວກັບ UDF ແລະຊ່ວຍໃຫ້ທ່ານໃຊ້ພວກມັນຢ່າງມີປະສິດທິພາບຫຼາຍຂຶ້ນໃນປຶ້ມວຽກ Excel ຂອງທ່ານ.
UDF ແລະ Macro ແມ່ນສິ່ງດຽວກັນບໍ?
ທັງສອງຟັງຊັນທີ່ຜູ້ໃຊ້ກຳນົດໄວ້ ແລະ VBA macros ຖືກສ້າງຂື້ນໂດຍໃຊ້ຕົວແກ້ໄຂ VBA. ຄວາມແຕກຕ່າງລະຫວ່າງພວກມັນແມ່ນຫຍັງ ແລະສິ່ງທີ່ຈະໃຫ້ຕາມໃຈມັກ?
ຄວາມແຕກຕ່າງທີ່ ສຳ ຄັນທີ່ສຸດແມ່ນວ່າຟັງຊັນປະຕິບັດການຄິດໄລ່, ແລະມະຫາພາກປະຕິບັດບາງການກະ ທຳ. ຟັງຊັນທີ່ຜູ້ໃຊ້ກໍານົດ, ເຊັ່ນ: ຟັງຊັນ Excel ປົກກະຕິ, ຕ້ອງໄດ້ຮັບການຂຽນຢູ່ໃນຕາລາງ. ເປັນຜົນມາຈາກການປະຕິບັດຂອງມັນ, ເຊນຈະສົ່ງຄືນຄ່າບາງຢ່າງ. ໃນເວລາດຽວກັນ, ມັນເປັນໄປບໍ່ໄດ້ທີ່ຈະປ່ຽນຄ່າຂອງຈຸລັງອື່ນໆ, ເຊັ່ນດຽວກັນກັບຄຸນສົມບັດບາງຢ່າງຂອງຈຸລັງໃນປະຈຸບັນ (ໂດຍສະເພາະ, ການຈັດຮູບແບບ). ແນວໃດກໍ່ຕາມ, ທ່ານສາມາດໃຊ້ຟັງຊັນທີ່ກຳນົດເອງໃນສູດການຈັດຮູບແບບຕາມເງື່ອນໄຂ.
UDF ແລະ VBA macro ເຮັດວຽກໃນວິທີຕ່າງໆ. ຕົວຢ່າງ, ເມື່ອທ່ານສ້າງ UDF ໃນ Visual Basic Editor, ທ່ານຈະເລີ່ມຕົ້ນດ້ວຍຄໍາຖະແຫຼງການ ຟັງຊັນ ແລະສິ້ນສຸດດ້ວຍ ຟັງຊັນສິ້ນສຸດ . ເມື່ອທ່ານບັນທຶກມະຫາພາກ, ທ່ານເລີ່ມຕົ້ນດ້ວຍ aຖະແຫຼງການ Sub ແລະລົງທ້າຍດ້ວຍ End Sub.
ບໍ່ແມ່ນຕົວປະຕິບັດການ Visual Basic ທັງໝົດທີ່ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງ UDFs. ດ້ວຍເຫດຜົນນີ້, ມະຫາພາກຈຶ່ງເປັນການແກ້ໄຂທີ່ຫຼາກຫຼາຍກວ່າ.
ມະຫາພາກບໍ່ໄດ້ຮຽກຮ້ອງໃຫ້ຜູ້ໃຊ້ຜ່ານອາກິວເມັນໃດໆ (ຫຼືບໍ່ສາມາດຍອມຮັບການໂຕ້ຖຽງໃດໆ), ບໍ່ຄືກັບຟັງຊັນທີ່ຜູ້ໃຊ້ກຳນົດໄວ້.
ຈຸດແມ່ນວ່າບາງຄໍາສັ່ງຂອງ macros ສາມາດໃຊ້ທີ່ຢູ່ຕາລາງ ຫຼືອົງປະກອບການຈັດຮູບແບບ (ຕົວຢ່າງ, ສີ). ຖ້າທ່ານຍ້າຍຈຸລັງ, ເພີ່ມຫຼືເອົາແຖວແລະຖັນ, ປ່ຽນຮູບແບບຂອງເຊນ, ຫຼັງຈາກນັ້ນທ່ານສາມາດ "ທໍາລາຍ" ມະຫາພາກຂອງທ່ານໄດ້ງ່າຍໆ. ນີ້ເປັນໄປໄດ້ໂດຍສະເພາະຖ້າທ່ານແບ່ງປັນໄຟລ໌ຂອງທ່ານກັບເພື່ອນຮ່ວມງານທີ່ບໍ່ຮູ້ວ່າ macros ຂອງທ່ານເຮັດວຽກແນວໃດ.
ຕົວຢ່າງ, ທ່ານມີໄຟລ໌ທີ່ມີ macro ເຮັດວຽກຢ່າງສົມບູນ. ສູດນີ້ຄິດໄລ່ອັດຕາສ່ວນຂອງເຊລ A1 ຫາ A4. Macro ປ່ຽນສີຂອງຈຸລັງເຫຼົ່ານີ້ເປັນສີເຫຼືອງ. ຮູບແບບເປີເຊັນຖືກຕັ້ງຢູ່ໃນເຊລທີ່ເຮັດວຽກ.
ຖ້າທ່ານ ຫຼືຄົນອື່ນຕັດສິນໃຈໃສ່ແຖວໃໝ່, ມາໂຄຣຈະສືບຕໍ່ຊອກຫາຄ່າໃນຕາລາງ A4 ( ພາຣາມິເຕີ 4,1 ໃນ UDF ຂອງທ່ານ), ລົ້ມເຫລວ ແລະສົ່ງຄືນຂໍ້ຜິດພາດ:
ໃນກໍລະນີນີ້, ຂໍ້ຜິດພາດເກີດຂຶ້ນເນື່ອງຈາກການແບ່ງດ້ວຍສູນ (ບໍ່ມີຄ່າໃນການເພີ່ມໃຫມ່. ແຖວ). ໃນກໍລະນີທີ່ມະຫາພາກດໍາເນີນການ, ໃຫ້ເວົ້າວ່າ, ສັງລວມ, ຫຼັງຈາກນັ້ນທ່ານພຽງແຕ່ຈະໄດ້ຮັບຜົນທີ່ຜິດພາດ. ແຕ່ທ່ານຈະບໍ່ຮູ້ກ່ຽວກັບມັນ.
ກົງກັນຂ້າມກັບ macros, ຟັງຊັນທີ່ຜູ້ໃຊ້ກໍານົດບໍ່ສາມາດເຮັດໃຫ້ເກີດສະຖານະການທີ່ບໍ່ຫນ້າພໍໃຈໄດ້.
ຂ້າງລຸ່ມນີ້ທ່ານຈະເຫັນປະສິດທິພາບຂອງການຄິດໄລ່ດຽວກັນໂດຍໃຊ້ UDF. ໃນທີ່ນີ້ທ່ານສາມາດລະບຸຕາລາງການປ້ອນຂໍ້ມູນໄດ້ທຸກບ່ອນໃນແຜ່ນວຽກ ແລະທ່ານຈະບໍ່ປະເຊີນກັບບັນຫາທີ່ບໍ່ຄາດຄິດເມື່ອປ່ຽນມັນ.
ຂ້ອຍຂຽນສູດຕໍ່ໄປນີ້ໃນ C3:
=UDF_vs_Macro(A1,A4)
ຈາກນັ້ນຂ້າພະເຈົ້າໄດ້ໃສ່ແຖວທີ່ເປົ່າຫວ່າງ, ແລະສູດໄດ້ປ່ຽນແປງຕາມທີ່ທ່ານສາມາດເບິ່ງໃນ screenshot ຂ້າງເທິງ.
ດຽວນີ້ພວກເຮົາສາມາດຍ້າຍຊ່ອງປ້ອນຂໍ້ມູນຫຼືເຊລທີ່ມີຫນ້າທີ່ໄດ້ທຸກບ່ອນ. ຜົນໄດ້ຮັບຈະຖືກຕ້ອງສະເໝີ.
ຜົນປະໂຫຍດເພີ່ມເຕີມຂອງການໃຊ້ UDFs ແມ່ນວ່າພວກມັນຈະອັບເດດໂດຍອັດຕະໂນມັດເມື່ອຄ່າໃນຕາລາງປ້ອນເຂົ້າມີການປ່ຽນແປງ. ເມື່ອໃຊ້ macro, ທ່ານຕ້ອງຮັບປະກັນວ່າຂໍ້ມູນທັງໝົດແມ່ນທັນສະໃໝສະເໝີ.
ການຈື່ຈຳຕົວຢ່າງນີ້ຢູ່ໃນໃຈ, ຂ້ອຍຢາກໃຊ້ UDFs ໃນທຸກທີ່ທີ່ເປັນໄປໄດ້ ແລະໃຊ້ macros ເທົ່ານັ້ນສຳລັບກິດຈະກຳອື່ນໆທີ່ບໍ່ແມ່ນການຄຳນວນ.
ຂໍ້ຈຳກັດ ແລະຂໍ້ເສຍຂອງການນຳໃຊ້ UDF
ຂ້າພະເຈົ້າໄດ້ກ່າວເຖິງຂໍ້ດີຂອງ UDF ຂ້າງເທິງແລ້ວ. ສັ້ນເລື່ອງສັ້ນ, ມັນສາມາດປະຕິບັດການຄິດໄລ່ທີ່ເປັນໄປບໍ່ໄດ້ກັບຟັງຊັນ Excel ມາດຕະຖານ. ນອກຈາກນັ້ນ, ມັນສາມາດປະຫຍັດແລະໃຊ້ສູດຍາວແລະສະລັບສັບຊ້ອນ, ປ່ຽນເປັນຫນ້າທີ່ດຽວ. ແລະທ່ານຈະບໍ່ຕ້ອງຂຽນສູດທີ່ສັບສົນຊໍ້າແລ້ວຊໍ້າອີກ.
ຕອນນີ້ໃຫ້ເວົ້າລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຂໍ້ບົກຜ່ອງຂອງ UDF:
- ການສ້າງ UDFs ຕ້ອງການໃຊ້ VBA. ບໍ່ມີທາງອ້ອມມັນ. ນີ້ຫມາຍຄວາມວ່າຜູ້ໃຊ້ບໍ່ສາມາດບັນທຶກ UDF ໃນລັກສະນະດຽວກັນກັບ Macro Excel. ເຈົ້າຕ້ອງສ້າງ UDF ດ້ວຍຕົນເອງ. ຢ່າງໃດກໍຕາມ, ທ່ານສາມາດຄັດລອກແລະວາງບາງສ່ວນຂອງລະຫັດມະຫາພາກທີ່ບັນທຶກໄວ້ໃນເມື່ອກ່ອນໃສ່ໃນຫນ້າທີ່ຂອງທ່ານ. ທ່ານພຽງແຕ່ຕ້ອງການຮູ້ຂໍ້ຈໍາກັດຂອງຫນ້າທີ່ກໍານົດເອງ.
- ຂໍ້ບົກຜ່ອງອີກຢ່າງຫນຶ່ງຂອງ UDF ກໍ່ຄືກັບຟັງຊັນ Excel ອື່ນໆທີ່ມັນສາມາດສົ່ງຄືນຄ່າດຽວຫຼື array ຂອງຄ່າເຂົ້າໄປໃນຕາລາງ. ມັນພຽງແຕ່ປະຕິບັດການຄິດໄລ່, ບໍ່ມີຫຍັງຫຼາຍ.
- ຖ້າທ່ານຕ້ອງການແບ່ງປັນປື້ມຄູ່ມືຂອງທ່ານກັບເພື່ອນຮ່ວມງານ, ໃຫ້ແນ່ໃຈວ່າຈະຊ່ວຍປະຢັດ UDFs ຂອງທ່ານໃນໄຟລ໌ດຽວກັນ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຟັງຊັນແບບກຳນົດເອງຂອງທ່ານຈະບໍ່ໃຊ້ໄດ້ກັບພວກມັນ.
- ຟັງຊັນກຳນົດເອງທີ່ສ້າງຂຶ້ນດ້ວຍຕົວແກ້ໄຂ VBA ແມ່ນຊ້າກວ່າຟັງຊັນປົກກະຕິ. ນີ້ແມ່ນສັງເກດເຫັນໂດຍສະເພາະໃນຕາຕະລາງຂະຫນາດໃຫຍ່. ແຕ່ຫນ້າເສຍດາຍ, VBA ເປັນພາສາການຂຽນໂປຼແກຼມຊ້າຫຼາຍ. ດັ່ງນັ້ນ, ຖ້າທ່ານມີຂໍ້ມູນຫຼາຍ, ພະຍາຍາມໃຊ້ຟັງຊັນມາດຕະຖານທຸກຄັ້ງທີ່ເປັນໄປໄດ້, ຫຼືສ້າງ UDF ໂດຍໃຊ້ຟັງຊັນ LAMBDA.
ຂໍ້ຈໍາກັດຂອງຟັງຊັນແບບກຳນົດເອງ:
- UDFs ແມ່ນ ອອກແບບເພື່ອປະຕິບັດການຄິດໄລ່ ແລະສົ່ງຄືນຄ່າ. ພວກມັນບໍ່ສາມາດໃຊ້ແທນມາໂຄຣໄດ້.
- ພວກມັນບໍ່ສາມາດປ່ຽນເນື້ອໃນຂອງເຊລອື່ນໄດ້ (ພຽງແຕ່ເຊລທີ່ໃຊ້ໄດ້ເທົ່ານັ້ນ).
- ຊື່ຟັງຊັນຕ້ອງປະຕິບັດຕາມກົດລະບຽບບາງຢ່າງ. ຕົວຢ່າງ, ທ່ານບໍ່ສາມາດໃຊ້ຊື່ທີ່ກົງກັບຊື່ຟັງຊັນ Excel ພື້ນເມືອງ ຫຼືທີ່ຢູ່ເຊລເຊັ່ນ AB123.
- ຟັງຊັນແບບກຳນົດເອງຂອງທ່ານບໍ່ສາມາດມີຍະຫວ່າງໃນຊື່, ແຕ່ມັນສາມາດມີຕົວອັກສອນຂີດກ້ອງໄດ້. ຢ່າງໃດກໍຕາມ, ວິທີການທີ່ມັກແມ່ນການໃຊ້ຕົວພິມໃຫຍ່ໃນຕອນຕົ້ນຂອງແຕ່ລະໃຫມ່word (ຕົວຢ່າງ: GetMaxBetween).
- UDF ບໍ່ສາມາດສຳເນົາ ແລະວາງເຊລໃສ່ພື້ນທີ່ອື່ນໆຂອງແຜ່ນວຽກໄດ້.
- ພວກເຂົາບໍ່ສາມາດປ່ຽນແຜ່ນວຽກທີ່ໃຊ້ງານໄດ້.
- UDFs ສາມາດ' t ປ່ຽນການຈັດຮູບແບບໃນຕາລາງທີ່ໃຊ້ງານ. ຖ້າທ່ານຕ້ອງການປ່ຽນການຈັດຮູບແບບຂອງຕາລາງເມື່ອສະແດງຄ່າທີ່ແຕກຕ່າງກັນ, ທ່ານຄວນໃຊ້ການຈັດຮູບແບບຕາມເງື່ອນໄຂ.
- ພວກມັນບໍ່ສາມາດເປີດປຶ້ມເພີ່ມເຕີມໄດ້.
- ພວກມັນບໍ່ສາມາດໃຊ້ເພື່ອແລ່ນມາໂຄໄດ້ໂດຍໃຊ້ Application.OnTime .
- ຟັງຊັນທີ່ຜູ້ໃຊ້ກຳນົດເອງບໍ່ສາມາດສ້າງໄດ້ໂດຍໃຊ້ macro recorder.
- ຟັງຊັນບໍ່ປາກົດຢູ່ໃນ ຜູ້ພັດທະນາ > Macros dialog.
- ຟັງຊັນຂອງທ່ານຈະປາກົດຢູ່ໃນກ່ອງໂຕ້ຕອບ ( Insert > Function ) ແລະໃນລາຍການຟັງຊັນພຽງແຕ່ຖ້າພວກມັນຖືກປະກາດເປັນ ສາທາລະນະ (ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ, ເວັ້ນເສຍແຕ່ຈະລະບຸໄວ້ເປັນຢ່າງອື່ນ).
- ຟັງຊັນໃດໆທີ່ປະກາດວ່າເປັນ ສ່ວນຕົວ ຈະບໍ່ປາກົດຢູ່ໃນລາຍການຄຸນສົມບັດ.
ການດຳເນີນການທີ່ຂ້ອນຂ້າງຊ້າ. , ເຊັ່ນດຽວກັນກັບຂໍ້ຈໍາກັດບາງຢ່າງໃນການນໍາໃຊ້, ອາດຈະເຮັດໃຫ້ທ່ານຄິດວ່າ: "ການນໍາໃຊ້ຫນ້າທີ່ກໍານົດເອງເຫຼົ່ານີ້ແມ່ນຫຍັງ?"
ພວກມັນສາມາດເປັນປະໂຫຍດ, ແລະເຮັດໄດ້ຖ້າພວກເຮົາເອົາໃຈໃສ່ກັບຂໍ້ຈໍາກັດຂອງພວກມັນ. ຖ້າທ່ານຮຽນຮູ້ວິທີການສ້າງແລະນໍາໃຊ້ UDFs ຢ່າງຖືກຕ້ອງ, ທ່ານສາມາດຂຽນຫ້ອງສະຫມຸດຫນ້າທີ່ຂອງທ່ານ. ນີ້ຈະຂະຫຍາຍຄວາມສາມາດຂອງທ່ານໃນການເຮັດວຽກຮ່ວມກັບຂໍ້ມູນໃນ Excel ໄດ້ຢ່າງຫຼວງຫຼາຍ.
ສຳລັບຂ້ອຍ, ໜ້າທີ່ກຳນົດເອງແມ່ນປະຫຍັດເວລາໄດ້ດີ. ແລະເຈົ້າເດ? ທ່ານໄດ້ພະຍາຍາມສ້າງ UDF ຂອງທ່ານເອງບໍ? ເຈົ້າມັກບໍດີກວ່າຫນ້າທີ່ Excel ພື້ນຖານ? ໃຫ້ປຶກສາຫາລືມັນຢູ່ໃນຄໍາເຫັນ :)