ສາລະບານ
ອາເຣແມ່ນຕົວແປທີ່ເກັບຂໍ້ມູນປະເພດດຽວກັນ. ຖ້າມີພຽງແຕ່ຫນຶ່ງແຖວຫຼືຫນຶ່ງຄໍລໍາຂອງຂໍ້ມູນ, ຫຼັງຈາກນັ້ນມັນຖືກເອີ້ນວ່າ array ມິຕິຫນຶ່ງ. ຢ່າງໃດກໍຕາມ, ເມື່ອມີຫຼາຍກວ່າຫນຶ່ງແຖວແລະຖັນ, ມັນຖືກເອີ້ນວ່າອາເຣ 2D. ພວກເຮົາໃຊ້ ReDim ເພື່ອປັບຂະໜາດອາເຣໃນ VBA. ນອກຈາກນັ້ນ, ພວກເຮົາໃຊ້ຄໍາສໍາຄັນ ຮັກສາ ກັບ ReDim ເພື່ອຮັກສາຂໍ້ມູນເກົ່າໄວ້. ບົດຄວາມນີ້ຈະສະແດງໃຫ້ທ່ານເຫັນ 2 ວິທີໄວເພື່ອ “ ReDim Preserve ” a 2D array ໃນ Excel VBA .
ດາວໂຫລດ Practice Workbook
Macro to ReDim Preserve 2D.xlsm
2 Handy Approaches to ReDim Preserve 2D Array ໃນ Excel VBA
ນີ້ແມ່ນຊຸດຂໍ້ມູນພື້ນຖານທີ່ສ້າງຂຶ້ນຈາກ 2D array ທີ່ມີສາມແຖວ ແລະ 2 ຖັນ. ກ່ອນອື່ນ ໝົດ, ພວກເຮົາຈະສ້າງ array ນີ້. ຫຼັງຈາກນັ້ນ, ພວກເຮົາຈະເພີ່ມຖັນອື່ນໃສ່ array ນີ້. ພວກເຮົາຈະໃຊ້ “ ReDim Preserve ” ເພື່ອເຮັດແນວນັ້ນ. ນອກຈາກນັ້ນ, ພວກເຮົາຈະສະແດງໃຫ້ເຫັນເຖິງສິ່ງທີ່ເກີດຂຶ້ນຖ້າພວກເຮົາບໍ່ໃຊ້ອັນນີ້.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ພວກເຮົາສາມາດປັບຂະໜາດໄດ້ພຽງແຕ່ຂະໜາດສຸດທ້າຍຂອງອາເຣ (ເຊັ່ນ: ຖັນ ຫຼື ຂອບເທິງ). ພວກເຮົາຈະແປ array, ຈາກນັ້ນປ່ຽນມິຕິສຸດທ້າຍ, ແລະຫຼັງຈາກນັ້ນ transpose ອີກຄັ້ງເພື່ອປັບຂະໜາດທັງສອງຂະໜາດຂອງ 2D array ໃນ Excel VBA.
1 . ReDim Preserve Last Dimension 2D Array
ທຳອິດພວກເຮົາຈະກຳນົດ 2D array ເປັນແບບໄດນາມິກ. ຈາກນັ້ນ, ໂດຍໃຊ້ຄຳຖະແຫຼງ ReDim , ພວກເຮົາຈະສ້າງarray ມີສາມແຖວແລະສອງຖັນ. ສຸດທ້າຍ, ພວກເຮົາຈະໃຊ້ຄໍາຖະແຫຼງການ ReDim ອີກຄັ້ງກັບ Sserve keyword ເພື່ອ ເພີ່ມຂອບເທິງຂອງອາເຣສອງມິຕິ.
ຂັ້ນຕອນ:
- ເພື່ອເລີ່ມຕົ້ນ, ກົດ ALT+F11 ເພື່ອເປີດໜ້າຈໍ VBA Module . ອີກທາງເລືອກ, ທ່ານສາມາດເຮັດສິ່ງນີ້ໄດ້ຈາກແຖບ ຜູ້ພັດທະນາ → ເລືອກ Visual Basic .
- ຈາກນັ້ນ, ຈາກ ໃສ່ ແຖບ → ເລືອກ ໂມດູນ . ພວກເຮົາຈະພິມລະຫັດ VBA ຢູ່ທີ່ນີ້.
- ຕໍ່ໄປ, ພິມລະຫັດຕໍ່ໄປນີ້ໃນ ໂມດູນ window.
4171
ການແບ່ງລະຫັດ VBA
- ທຳອິດ, ພວກເຮົາໂທຫາ ຂັ້ນຕອນຍ່ອຍ “ Redim_Preserve_2D_Array_Row ”.
- ຈາກນັ້ນ, ພວກເຮົາປະກາດຕົວແປ Our_Array ເປັນ dynamic array.
- ຕໍ່ໄປ, ພວກເຮົາກໍານົດຂະຫນາດຂອງ array. ຂອບເຂດລຸ່ມແມ່ນ 3 , ຂອບເຂດເທິງແມ່ນ 2 , ແລະທັງສອງເລີ່ມຕົ້ນຈາກ 1 .
- ຈາກນັ້ນ, ພວກເຮົາກໍານົດຄ່າໃຫ້ກັບ array. .
- ຫຼັງຈາກນັ້ນ, ພວກເຮົາເອົາຄ່າເຂົ້າໄປໃນໄລຍະເຊລ C6:D8 .
- ຫຼັງຈາກນັ້ນ, ພວກເຮົາ ຈະດໍາເນີນການລະຫັດ.
- ດັ່ງນັ້ນ, ບັນທຶກ the ໂມດູນ ແລະກົດ Run .
- ດັ່ງນັ້ນ, ມັນຈະກັບຄືນຄ່າກັບໄລຍະເຊລທີ່ກໍານົດໄວ້. ພວກເຮົາສາມາດເຫັນໄດ້ວ່າ “ Rachel ” ຢູ່ໃນແຖວ 1 ແລະຖັນ 1 ຕຳແໜ່ງ,ເຊິ່ງຖືກກໍານົດເປັນ ( 1,1 ) ໃນລະຫັດ VBA.
- ຕອນນີ້, ພວກເຮົາຈະປັບຂະໜາດອາເຣ.
- ດັ່ງນັ້ນ, ເພີ່ມອັນນີ້ໃສ່ລະຫັດກ່ອນໜ້ານີ້ ແລະເອົາ Range.Value statement ທຳອິດອອກ. ຍິ່ງໄປກວ່ານັ້ນ, ລະຫັດມີລັກສະນະເປັນແນວໃດທ່ານສາມາດເບິ່ງໄດ້ຈາກພາບຖ່າຍຂ້າງລຸ່ມນີ້.
1855
- ທີ່ນີ້, ພວກເຮົາໄດ້ເພີ່ມຂອບເຂດເທິງຈາກ ( 1 ເຖິງ 2 ) ຫາ ( 1 ເຖິງ 3 ) ໂດຍ 1 .
- ຈາກນັ້ນ, ພວກເຮົາໄດ້ເພີ່ມຄ່າໃສ່ array.
- ດຽວນີ້ຖ້າພວກເຮົາປະຕິບັດລະຫັດນີ້, ພວກເຮົາຈະເຫັນວ່າຄ່າທີ່ຜ່ານມາບໍ່ໄດ້ຖືກຮັກສາໄວ້. ມັນຈະກັບຄືນມາຫວ່າງເປົ່າສຳລັບຄ່າກ່ອນໜ້າ. 1>ReDim statement .
- ສຸດທ້າຍ, ລະຫັດເຕັມຂອງພວກເຮົາຈະເປັນອັນນີ້.
4790
- ດຽວນີ້, ຖ້າພວກເຮົາ Run ລະຫັດນີ້, ຈາກນັ້ນຜົນໄດ້ຮັບຈະເປັນແບບນີ້. ດັ່ງນັ້ນ, ພວກເຮົາຈະ “ ReDim Preserve ” ມິຕິສຸດທ້າຍຂອງ 2D array ໃນ Excel VBA.. ຕອນນີ້, ວິທີການຕໍ່ໄປຈະສະແດງວິທີການ “ ReDim. ຮັກສາ ” ແລະປັບຂະໜາດທັງສອງຂະໜາດຂອງອາເຣ.
ອ່ານເພີ່ມເຕີມ: VBA ເພື່ອເຮັດໃຫ້ເປັນເອກະລັກ ຄ່າຈາກຖັນເຂົ້າໄປໃນ Array ໃນ Excel (3 ເງື່ອນໄຂ)
ການອ່ານທີ່ຄ້າຍຄືກັນ
- ວິທີຕັ້ງຊື່ຕາຕະລາງ Array ໃນ Excel (ດ້ວຍ ຂັ້ນຕອນງ່າຍໆ)
- Excel VBA ເພື່ອອ່ານໄຟລ໌ CSV ເປັນ Array (4 ຕົວຢ່າງທີ່ເໝາະສົມ)
- ວິທີປ່ຽນ Range ເປັນ Array ໃນ ExcelVBA (3 ວິທີ)
- Excel VBA: ເອົາການຊໍ້າກັນອອກຈາກ Array (2 ຕົວຢ່າງ)
2. ReDim ຮັກສາທັງສອງມິຕິ 2D Array ໃນ Excel VBA
ໃນວິທີການສຸດທ້າຍນີ້, ພວກເຮົາຈະສະແດງໃຫ້ທ່ານຂັ້ນຕອນການປັບຂະຫນາດແລະ “ ReDim Preserve ” the 2D array . ທີ່ນີ້, ພວກເຮົາຈະໃຊ້ຟັງຊັນ VBA Transpose ເພື່ອປັບຂະໜາດຂອບລຸ່ມຂອງອາເຣ. ຖ້າພວກເຮົາພະຍາຍາມປັບຂະຫນາດຂອບເຂດຕ່ໍາຂອງ array ໃນວິທີການທໍາອິດ, ພວກເຮົາຈະເຫັນຄວາມຜິດພາດ “ Subscript out of range ”. ດຽວນີ້, ໂດຍບໍ່ຕ້ອງເສຍໃຈອີກຕໍ່ໄປ, ໃຫ້ພວກເຮົາເບິ່ງວ່າພວກເຮົາສາມາດແກ້ໄຂອັນນີ້ໄດ້ແນວໃດ ແລະ ບັນລຸເປົ້າໝາຍຂອງພວກເຮົາ.
ຂັ້ນຕອນ:
- ທຳອິດ, ດັ່ງທີ່ສະແດງໃນວິທີທຳອິດ , ໃຫ້ເປີດໜ້າຈໍ ໂມດູນ .
- ອັນທີສອງ, ໃຫ້ເພີ່ມລະຫັດແຖວຕໍ່ໄປນີ້ໃສ່ໃນ ລະຫັດທໍາອິດ.
9247
- ນອກຈາກນັ້ນ, ລະຫັດສໍາລັບວິທີການສຸດທ້າຍເບິ່ງຄືວ່ານີ້.
3820
ການແບ່ງລະຫັດ VBA
- ທຳອິດ, ພວກເຮົາກຳລັງໂທຫາ ຂັ້ນຕອນຍ່ອຍ “ ReDim_Preserve_2D_Array_Both_Dimensions ” .
- ຈາກນັ້ນ, ລະຫັດທີ່ເຫຼືອຂຶ້ນກັບຟັງຊັນ VBA Transpose ແມ່ນຄືກັນກັບໃນລະຫັດທຳອິດ.
- ນີ້, ພວກເຮົາ. ກໍາລັງຖ່າຍທອດ array.
- ຈາກນັ້ນ, ພວກເຮົາເພີ່ມຂອບເຂດເທິງຂອງ array.
- ຫຼັງຈາກນັ້ນ, ພວກເຮົາ transpose array ອີກເທື່ອຫນຶ່ງ. ດັ່ງນັ້ນ, ໃນທີ່ສຸດມັນຈະປ່ຽນຂອບເຂດຕ່ໍາ.
- ຕໍ່ໄປ, ພວກເຮົາໃສ່ຄ່າສໍາລັບ array ປັບຂະຫນາດໃນຂະນະທີ່.ຮັກສາຂໍ້ມູນເກົ່າໄວ້.
- ສຸດທ້າຍ, ພວກເຮົາຂຽນຄ່າໃສ່ຊ່ວງຕາລາງ C6:E9 .
- ຫຼັງຈາກ ວ່າ, ດັ່ງທີ່ສະແດງຢູ່ໃນວິທີທໍາອິດ , ແລ່ນ ລະຫັດນີ້.
- ດັ່ງນັ້ນ, ພວກເຮົາສາມາດເບິ່ງເຫັນວິທີການຮັກສາລະຫັດ . 2D array ໂດຍໃຊ້ “ ReDim Preserve ” ແລະຟັງຊັນ VBA Transpose .
ອ່ານເພີ່ມເຕີມ: VBA ເພື່ອ Transpose Array ໃນ Excel (3 ວິທີ)
ສິ່ງທີ່ຄວນຈື່
- ReDim Preserve ບໍ່ສາມາດປ່ຽນຂອບລຸ່ມຂອງອາເຣໄດ້. ເພື່ອເຮັດແນວນັ້ນ, ພວກເຮົາຈໍາເປັນຕ້ອງໃຊ້ຟັງຊັນ Transpose .
- ພວກເຮົາສາມາດໃຊ້ ReDim ຢູ່ໃນ dynamic arrays ເທົ່ານັ້ນ. <16
ສະຫຼຸບ
ພວກເຮົາໄດ້ສະແດງໃຫ້ທ່ານເຫັນສອງວິທີທີ່ໄວເພື່ອ “ ReDim Preserve ” a 2D array ໃນ Excel VBA. ຖ້າຫາກທ່ານປະເຊີນກັບບັນຫາໃດໆກ່ຽວກັບວິທີການເຫຼົ່ານີ້ຫຼືມີຄໍາຄຶດຄໍາເຫັນໃດໆສໍາລັບຂ້າພະເຈົ້າ, ກະລຸນາໃຫ້ຄໍາເຫັນຂ້າງລຸ່ມນີ້. ນອກຈາກນັ້ນ, ທ່ານສາມາດເຂົ້າເບິ່ງເວັບໄຊຂອງພວກເຮົາ ExcelWIKI ສໍາລັບບົດຄວາມທີ່ກ່ຽວຂ້ອງກັບ Excel ເພີ່ມເຕີມ. ຂອບໃຈສໍາລັບການອ່ານ, ສືບຕໍ່ດີເລີດ!