ສາລະບານ
ໜຶ່ງໃນຄວາມຜິດພາດທົ່ວໄປທີ່ພວກເຮົາປະເຊີນໃນຂະນະທີ່ເຮັດວຽກກັບ VBA ໃນ Excel ແມ່ນປະເພດທີ່ຜູ້ໃຊ້ກຳນົດບໍ່ໄດ້ຖືກກຳນົດ. ໃນບົດຄວາມນີ້, ຂ້າພະເຈົ້າຈະສະແດງໃຫ້ທ່ານເຫັນວ່າເປັນຫຍັງຄວາມຜິດພາດນີ້ເກີດຂຶ້ນແລະວິທີການແກ້ໄຂຄວາມຜິດພາດນີ້. ກໍາລັງອ່ານບົດຄວາມນີ້ຢູ່.
ຜູ້ໃຊ້ກໍານົດປະເພດ Not Defined.xlsm
2 ສາເຫດ ແລະການແກ້ໄຂຕໍ່ກັບ ຜູ້ໃຊ້ກໍານົດ ປະເພດບໍ່ໄດ້ກໍານົດໄວ້ໃນ Excel VBA
ມີ 2 ບັນຫາໃຫຍ່ທີ່ຢູ່ເບື້ອງຫຼັງຄວາມຜິດພາດທີ່ພົບເລື້ອຍໆນີ້ໃນ Excel VBA . ມາສຳຫຼວດພວກມັນຢ່າງລະອຽດ ແລະຊອກຫາວິທີແກ້ໄຂບັນຫາພວກມັນ.
1. ຄວາມຜິດພາດການສະກົດຄໍາໃນຂະນະທີ່ປະກາດຕົວແປ
ນີ້ແມ່ນເຫດຜົນສໍາຄັນທີ່ຢູ່ເບື້ອງຫລັງຄວາມຜິດພາດນີ້. ສ່ວນຫຼາຍແລ້ວ, ຂໍ້ຜິດພາດ “User-Defined Type not Defined” ແມ່ນເກີດມາຈາກຄວາມຜິດພາດການສະກົດຄໍາໃນຂະນະທີ່ປະກາດຕົວແປ.
ເບິ່ງແຖວຂອງລະຫັດຕໍ່ໄປນີ້.
9937.
ຫາກທ່ານແລ່ນລະຫັດນີ້, ທ່ານຈະໄດ້ຮັບກ່ອງຂໍ້ຜິດພາດແຈ້ງໃຫ້ທ່ານຊາບກ່ຽວກັບການມີຂໍ້ຜິດພາດ “ປະເພດທີ່ລະບຸໂດຍຜູ້ໃຊ້ບໍ່ໄດ້ລະບຸ”. ຄຽງຄູ່ກັບມັນ, ເຈົ້າຈະພົບເຫັນແຖວທີສອງຂອງລະຫັດທີ່ເນັ້ນເປັນສີຟ້າ, ບ່ອນທີ່ຂ້ອຍຂຽນ “strng” ແທນທີ່ຂອງ “string” .
ຂ້ອຍຫວັງວ່າເຈົ້າຈະໄດ້ຮັບຈຸດ. VBA ບໍ່ສາມາດຮັບຮູ້ປະເພດຕົວແປໄດ້ “strng” , ນັ້ນແມ່ນເຫດຜົນທີ່ມັນຖືວ່າມັນເປັນປະເພດຕົວແປໃໝ່ ແລະຄິດວ່າເຈົ້າໄດ້ກຳນົດມັນຢູ່ບ່ອນໃດບ່ອນໜຶ່ງ. ແຕ່ເມື່ອມັນພົບວ່າທ່ານບໍ່ໄດ້ປະກາດມັນຢູ່ບ່ອນໃດກໍ່ຕາມ, ມັນເຮັດໃຫ້ເກີດຄວາມຜິດພາດຂຶ້ນ.
ດັ່ງນັ້ນ, ໃນຂະນະທີ່ແລ່ນລະຫັດ VBA ງ່າຍໆ, ຖ້າທ່ານພົບຂໍ້ຜິດພາດນີ້, ທໍາອິດໃຫ້ກວດເບິ່ງການສະກົດຄໍາທັງຫມົດຂອງປະເພດຕົວແປຂອງທ່ານ.
2. ການຂາດການອ້າງອີງທີ່ຖືກຕ້ອງ
ນີ້ແມ່ນສາເຫດອື່ນທີ່ຢູ່ເບື້ອງຫຼັງຄວາມຜິດພາດນີ້. ນັ້ນແມ່ນການຂາດການອ້າງອີງທີ່ຖືກຕ້ອງ. ບາງຄັ້ງພວກເຮົາໃຊ້ບາງວັດຖຸໃນລະຫັດຂອງພວກເຮົາທີ່ຕ້ອງການການອ້າງອີງທີ່ເຫມາະສົມຈາກ ກ່ອງອ້າງອີງ Visual Basic . ຖ້າບໍ່ດັ່ງນັ້ນ, VBA ບໍ່ຮູ້ຈັກວັດຖຸ.
ເບິ່ງລະຫັດ VBA ຕໍ່ໄປນີ້.
9517
ແລ່ນລະຫັດນີ້. ທ່ານຈະໄດ້ຮັບຄວາມຜິດພາດເກົ່າດຽວກັນ “ປະເພດທີ່ຜູ້ໃຊ້ໄດ້ຮັບການກໍານົດບໍ່ໄດ້ກໍານົດໄວ້”, ເນັ້ນໃສ່ ວັດຈະນານຸກົມວັດຈະນານຸກົມ . ນີ້ແມ່ນຍ້ອນວ່າ VBA ບໍ່ສາມາດຮັບຮູ້ ວັດຖຸວັດຈະນານຸກົມ , ແລະຖືວ່າມັນເປັນຕົວແປທີ່ຜູ້ໃຊ້ກຳນົດເອງ, ເຊິ່ງບໍ່ໄດ້ຖືກກຳນົດຜິດ.
ຕອນນີ້ຄຳຖາມໃຫຍ່ທີ່ສຸດແມ່ນ, ວິທີການແກ້ໄຂຂໍ້ຜິດພາດນີ້? ງ່າຍ. ມີ 2 ວິທີທີ່ຈະແກ້ໄຂຂໍ້ຜິດພາດນີ້.
⧪ ວິທີແກ້ໄຂບັນຫາ 1: ກວດສອບການອ້າງອີງເບື້ອງຕົ້ນຈາກກ່ອງອ້າງອີງຂອງ Visual Box
ນີ້ແມ່ນ ວິທີທີ່ສະຫລາດທີ່ສຸດເພື່ອແກ້ໄຂບັນຫານີ້. ໄປທີ່ Tools > ປຸ່ມອ້າງອີງ ໃນໂບ Visual Basic . ຄລິກທີ່ References .
ກ່ອງໂຕ້ຕອບທີ່ເອີ້ນວ່າ References ຈະເປີດຂຶ້ນ. ເລື່ອນແລະຊອກຫາ Microsoft Scripting Runtime (ອັນນີ້ຂຶ້ນຢູ່ກັບວັດຖຸທີ່ທ່ານກໍາລັງໃຊ້. The ວັດຈະນານຸກົມobject ຕ້ອງການ Microsoft Scripting Runtime ເພື່ອຮັບຮູ້. ດັ່ງນັ້ນ, ໃນຂະນະທີ່ໃຊ້ວັດຖຸໃນລະຫັດ VBA , ທ່ານຕ້ອງຮູ້ເງື່ອນໄຂເບື້ອງຕົ້ນຂອງມັນເພື່ອຮັບຮູ້ໂດຍ VBA. ເຂົ້າເບິ່ງລິ້ງນີ້ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.). ກວດເບິ່ງມັນ.
ດຽວນີ້ກັບມາແລະແລ່ນລະຫັດ. ທ່ານຈະບໍ່ໄດ້ຮັບຂໍ້ຜິດພາດໃດໆ. ເນື່ອງຈາກວ່າ VBA ສາມາດຮັບຮູ້ ວັດຈະນານຸກົມ ໃນເວລານີ້.
⧪ ການແກ້ໄຂ 2: ປະກາດມັນເປັນວັດຖຸທີ່ບໍລິສຸດ ແທນທີ່ຈະເປັນວັດຖຸສະເພາະ
ມີວິທີອື່ນເພື່ອແກ້ໄຂບັນຫານີ້. ທ່ານສາມາດປະກາດວັດຖຸເປັນວັດຖຸບໍລິສຸດໄດ້, ແທນທີ່ຈະເປັນ ວັດຖຸວັດຈະນານຸກົມ .
ໃຫ້ສັງເກດເສັ້ນລະຫັດຕໍ່ໄປນີ້.
4810
ໃນທີ່ນີ້ຂ້ອຍໄດ້ປະກາດຕົວແປ MyDictionary ເປັນວັດຖຸທີ່ງ່າຍດາຍ, ບໍ່ແມ່ນ ວັດຈະນານຸກົມ. ດຽວນີ້ຖ້າທ່ານແລ່ນລະຫັດນີ້, ທ່ານຈະບໍ່ມີຂໍ້ຜິດພາດໃດໆ.